@dxc-technology/halstack-react 12.0.2 → 12.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/breadcrumbs/Breadcrumbs.stories.tsx +1 -1
- package/breadcrumbs/Breadcrumbs.test.js +1 -2
- package/card/Card.stories.tsx +1 -1
- package/chip/Chip.stories.tsx +2 -6
- package/contextual-menu/ContextualMenu.js +24 -4
- package/contextual-menu/ContextualMenu.stories.tsx +5 -14
- package/contextual-menu/ContextualMenu.test.js +108 -66
- package/contextual-menu/GroupItem.js +9 -9
- package/contextual-menu/ItemAction.d.ts +1 -1
- package/contextual-menu/ItemAction.js +8 -9
- package/contextual-menu/SingleItem.d.ts +1 -1
- package/contextual-menu/SingleItem.js +14 -14
- package/contextual-menu/types.d.ts +9 -6
- package/date-input/Calendar.js +46 -30
- package/date-input/DateInput.accessibility.test.js +12 -13
- package/date-input/DateInput.js +9 -3
- package/date-input/DateInput.stories.tsx +5 -6
- package/date-input/DateInput.test.js +30 -31
- package/date-input/YearPicker.js +9 -4
- package/dialog/Dialog.stories.tsx +2 -3
- package/dialog/Dialog.test.js +1 -2
- package/dropdown/Dropdown.accessibility.test.js +1 -2
- package/dropdown/Dropdown.stories.tsx +1 -1
- package/dropdown/Dropdown.test.js +1 -2
- package/file-input/FileInput.js +1 -3
- package/file-input/types.d.ts +0 -4
- package/grid/Grid.stories.tsx +3 -1
- package/header/Header.stories.tsx +1 -1
- package/number-input/NumberInput.accessibility.test.js +1 -2
- package/number-input/NumberInput.stories.tsx +2 -16
- package/number-input/NumberInput.test.js +1 -2
- package/package.json +17 -15
- package/paginator/Paginator.accessibility.test.js +1 -2
- package/paginator/Paginator.test.js +1 -2
- package/password-input/PasswordInput.accessibility.test.js +1 -2
- package/password-input/PasswordInput.stories.tsx +1 -1
- package/password-input/PasswordInput.test.js +1 -2
- package/resultset-table/ResultsetTable.accessibility.test.js +1 -2
- package/resultset-table/ResultsetTable.stories.tsx +1 -1
- package/resultset-table/ResultsetTable.test.js +1 -2
- package/select/Select.accessibility.test.js +1 -2
- package/select/Select.stories.tsx +1 -1
- package/select/Select.test.js +1 -2
- package/sidenav/Sidenav.stories.tsx +1 -1
- package/slider/Slider.accessibility.test.js +1 -2
- package/slider/Slider.test.js +1 -2
- package/table/Table.accessibility.test.js +1 -2
- package/table/Table.stories.tsx +1 -1
- package/table/Table.test.js +1 -2
- package/tabs/Tabs.stories.tsx +2 -2
- package/tag/Tag.stories.tsx +1 -1
- package/text-input/TextInput.accessibility.test.js +1 -2
- package/text-input/TextInput.stories.tsx +2 -8
- package/text-input/TextInput.test.js +1 -2
- package/toggle-group/ToggleGroup.stories.tsx +1 -1
- package/typography/Typography.stories.tsx +1 -3
- package/utils/FocusLock.js +2 -1
- package/wizard/Wizard.stories.tsx +1 -1
package/date-input/Calendar.js
CHANGED
|
@@ -11,8 +11,7 @@ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/sli
|
|
|
11
11
|
var _react = _interopRequireWildcard(require("react"));
|
|
12
12
|
var _styledComponents = _interopRequireDefault(require("styled-components"));
|
|
13
13
|
var _useTranslatedLabels = _interopRequireDefault(require("../useTranslatedLabels"));
|
|
14
|
-
var
|
|
15
|
-
var _templateObject, _templateObject2, _templateObject3, _templateObject4;
|
|
14
|
+
var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6;
|
|
16
15
|
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
|
|
17
16
|
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { "default": e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n["default"] = e, t && t.set(e, n), n; }
|
|
18
17
|
var getDays = function getDays(innerDate) {
|
|
@@ -49,12 +48,20 @@ var getDateToFocus = function getDateToFocus(selectedDate, innerDate, today) {
|
|
|
49
48
|
var isDaySelected = function isDaySelected(date, selectedDate) {
|
|
50
49
|
return (selectedDate === null || selectedDate === void 0 ? void 0 : selectedDate.get("month")) === date.month && (selectedDate === null || selectedDate === void 0 ? void 0 : selectedDate.get("year")) === date.year && (selectedDate === null || selectedDate === void 0 ? void 0 : selectedDate.get("date")) === date.day;
|
|
51
50
|
};
|
|
51
|
+
var divideDaysIntoWeeks = function divideDaysIntoWeeks(data, weekSize) {
|
|
52
|
+
return Array.from({
|
|
53
|
+
length: Math.ceil(data.length / weekSize)
|
|
54
|
+
}, function (_, rowIndex) {
|
|
55
|
+
return data.slice(rowIndex * weekSize, (rowIndex + 1) * weekSize);
|
|
56
|
+
});
|
|
57
|
+
};
|
|
52
58
|
var Calendar = function Calendar(_ref) {
|
|
53
59
|
var selectedDate = _ref.selectedDate,
|
|
54
60
|
innerDate = _ref.innerDate,
|
|
55
61
|
onInnerDateChange = _ref.onInnerDateChange,
|
|
56
62
|
onDaySelect = _ref.onDaySelect,
|
|
57
63
|
today = _ref.today;
|
|
64
|
+
var id = (0, _react.useId)();
|
|
58
65
|
var _useState = (0, _react.useState)(getDateToFocus(selectedDate, innerDate, today)),
|
|
59
66
|
_useState2 = (0, _slicedToArray2["default"])(_useState, 2),
|
|
60
67
|
dateToFocus = _useState2[0],
|
|
@@ -88,7 +95,7 @@ var Calendar = function Calendar(_ref) {
|
|
|
88
95
|
(0, _react.useEffect)(function () {
|
|
89
96
|
if (isFocusable) {
|
|
90
97
|
var _document$getElementB;
|
|
91
|
-
(_document$getElementB = document.getElementById("
|
|
98
|
+
(_document$getElementB = document.getElementById("".concat(id, "_day_").concat(dateToFocus.get("date"), "_month").concat(dateToFocus.get("month")))) === null || _document$getElementB === void 0 ? void 0 : _document$getElementB.focus();
|
|
92
99
|
setIsFocusable(false);
|
|
93
100
|
}
|
|
94
101
|
}, [dateToFocus, isFocusable]);
|
|
@@ -146,33 +153,40 @@ var Calendar = function Calendar(_ref) {
|
|
|
146
153
|
break;
|
|
147
154
|
}
|
|
148
155
|
};
|
|
149
|
-
return /*#__PURE__*/_react["default"].createElement(CalendarContainer,
|
|
150
|
-
|
|
151
|
-
|
|
156
|
+
return /*#__PURE__*/_react["default"].createElement(CalendarContainer, {
|
|
157
|
+
role: "grid"
|
|
158
|
+
}, /*#__PURE__*/_react["default"].createElement(CalendarHeaderRow, {
|
|
159
|
+
role: "row"
|
|
152
160
|
}, weekDays.map(function (weekDay) {
|
|
153
161
|
return /*#__PURE__*/_react["default"].createElement(WeekHeaderCell, {
|
|
154
|
-
key: weekDay
|
|
162
|
+
key: weekDay,
|
|
163
|
+
role: "columnheader"
|
|
155
164
|
}, weekDay);
|
|
156
|
-
})), /*#__PURE__*/_react["default"].createElement(
|
|
157
|
-
onBlur: handleOnBlur
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
165
|
+
})), /*#__PURE__*/_react["default"].createElement(MonthContainer, {
|
|
166
|
+
onBlur: handleOnBlur,
|
|
167
|
+
role: "rowgroup"
|
|
168
|
+
}, divideDaysIntoWeeks(dayCells, weekDays.length).map(function (week, rowIndex) {
|
|
169
|
+
return /*#__PURE__*/_react["default"].createElement(WeekContainer, {
|
|
170
|
+
key: "".concat(id, "_week_").concat(rowIndex),
|
|
171
|
+
role: "row"
|
|
172
|
+
}, week.map(function (date, index) {
|
|
173
|
+
return /*#__PURE__*/_react["default"].createElement(DayCellButton, {
|
|
174
|
+
id: "".concat(id, "_day_").concat(date.day, "_month").concat(date.month),
|
|
175
|
+
role: "gridcell",
|
|
176
|
+
"aria-selected": isDaySelected(date, selectedDate),
|
|
177
|
+
onKeyDown: function onKeyDown(event) {
|
|
178
|
+
return handleDayKeyboardEvent(event, date);
|
|
179
|
+
},
|
|
180
|
+
onClick: function onClick() {
|
|
181
|
+
return onDateClickHandler(date);
|
|
182
|
+
},
|
|
183
|
+
selected: isDaySelected(date, selectedDate),
|
|
184
|
+
actualMonth: date.month === innerDate.get("month"),
|
|
185
|
+
autoFocus: date.day === dateToFocus.get("date") && date.month === dateToFocus.get("month"),
|
|
186
|
+
tabIndex: date.day === dateToFocus.get("date") && date.month === dateToFocus.get("month") ? 0 : -1,
|
|
187
|
+
isCurrentDay: today.get("date") === date.day && today.get("month") === innerDate.get("month") && today.get("month") === date.month && today.get("year") === innerDate.get("year")
|
|
188
|
+
}, date.day);
|
|
189
|
+
}));
|
|
176
190
|
})));
|
|
177
191
|
};
|
|
178
192
|
var CalendarContainer = _styledComponents["default"].div(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n box-sizing: border-box;\n display: flex;\n flex-direction: column;\n justify-content: center;\n padding: 0px 8px 8px 8px;\n width: 292px;\n font-family: ", ";\n font-size: ", ";\n color: ", ";\n font-weight: ", ";\n"])), function (props) {
|
|
@@ -184,9 +198,11 @@ var CalendarContainer = _styledComponents["default"].div(_templateObject || (_te
|
|
|
184
198
|
}, function (props) {
|
|
185
199
|
return props.theme.dateInput.pickerFontWeight;
|
|
186
200
|
});
|
|
187
|
-
var
|
|
188
|
-
var
|
|
189
|
-
var
|
|
201
|
+
var CalendarHeaderRow = _styledComponents["default"].div(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n flex-direction: row;\n flex-wrap: nowrap;\n justify-content: space-between;\n align-items: center;\n"])));
|
|
202
|
+
var WeekHeaderCell = _styledComponents["default"].span(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n align-items: center;\n justify-content: center;\n width: 36px;\n height: 36px;\n"])));
|
|
203
|
+
var MonthContainer = _styledComponents["default"].div(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2["default"])(["\n box-sizing: border-box;\n display: flex;\n gap: 4px;\n flex-direction: column;\n justify-content: space-between;\n"])));
|
|
204
|
+
var WeekContainer = _styledComponents["default"].div(_templateObject5 || (_templateObject5 = (0, _taggedTemplateLiteral2["default"])(["\n box-sizing: border-box;\n display: flex;\n gap: 4px;\n justify-content: space-between;\n"])));
|
|
205
|
+
var DayCellButton = _styledComponents["default"].button(_templateObject6 || (_templateObject6 = (0, _taggedTemplateLiteral2["default"])(["\n display: inline-flex;\n justify-content: center;\n align-items: center;\n width: 36px;\n height: 36px;\n padding: 0;\n border: none;\n border-radius: 50%;\n cursor: pointer;\n font-family: ", ";\n font-size: ", ";\n color: ", ";\n font-weight: ", ";\n\n &:focus {\n outline: ", " solid 2px;\n }\n &:hover {\n background-color: ", ";\n color: ", ";\n }\n &:active {\n background-color: ", ";\n color: ", ";\n }\n\n ", "\n background-color: ", ";\n color: ", ";\n"])), function (props) {
|
|
190
206
|
return props.theme.dateInput.pickerFontFamily;
|
|
191
207
|
}, function (props) {
|
|
192
208
|
return props.theme.dateInput.pickerFontSize;
|
|
@@ -10,17 +10,6 @@ var _react2 = require("@testing-library/react");
|
|
|
10
10
|
var _axeHelper = require("../../test/accessibility/axe-helper.js");
|
|
11
11
|
var _DateInput = _interopRequireDefault(require("./DateInput"));
|
|
12
12
|
var _disabledRules = require("../../test/accessibility/rules/specific/date-input/disabledRules.js");
|
|
13
|
-
// TODO: REMOVE
|
|
14
|
-
|
|
15
|
-
var disabledRules = {
|
|
16
|
-
rules: _disabledRules.disabledRules.reduce(function (rulesObj, rule) {
|
|
17
|
-
rulesObj[rule] = {
|
|
18
|
-
enabled: false
|
|
19
|
-
};
|
|
20
|
-
return rulesObj;
|
|
21
|
-
}, {})
|
|
22
|
-
};
|
|
23
|
-
|
|
24
13
|
// Mocking DOMRect for Radix Primitive Popover
|
|
25
14
|
global.globalThis = global;
|
|
26
15
|
global.DOMRect = {
|
|
@@ -41,7 +30,7 @@ global.ResizeObserver = /*#__PURE__*/function () {
|
|
|
41
30
|
function ResizeObserver() {
|
|
42
31
|
(0, _classCallCheck2["default"])(this, ResizeObserver);
|
|
43
32
|
}
|
|
44
|
-
(0, _createClass2["default"])(ResizeObserver, [{
|
|
33
|
+
return (0, _createClass2["default"])(ResizeObserver, [{
|
|
45
34
|
key: "observe",
|
|
46
35
|
value: function observe() {}
|
|
47
36
|
}, {
|
|
@@ -51,8 +40,18 @@ global.ResizeObserver = /*#__PURE__*/function () {
|
|
|
51
40
|
key: "disconnect",
|
|
52
41
|
value: function disconnect() {}
|
|
53
42
|
}]);
|
|
54
|
-
return ResizeObserver;
|
|
55
43
|
}();
|
|
44
|
+
|
|
45
|
+
// TODO: REMOVE
|
|
46
|
+
|
|
47
|
+
var disabledRules = {
|
|
48
|
+
rules: _disabledRules.disabledRules.reduce(function (rulesObj, rule) {
|
|
49
|
+
rulesObj[rule] = {
|
|
50
|
+
enabled: false
|
|
51
|
+
};
|
|
52
|
+
return rulesObj;
|
|
53
|
+
}, {})
|
|
54
|
+
};
|
|
56
55
|
describe("DateInput component accessibility tests", function () {
|
|
57
56
|
it("Should not have basic accessibility issues", /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee() {
|
|
58
57
|
var _render, baseElement, results;
|
package/date-input/DateInput.js
CHANGED
|
@@ -18,7 +18,7 @@ var _TextInput = _interopRequireDefault(require("../text-input/TextInput"));
|
|
|
18
18
|
var _DatePicker = _interopRequireDefault(require("./DatePicker"));
|
|
19
19
|
var Popover = _interopRequireWildcard(require("@radix-ui/react-popover"));
|
|
20
20
|
var _customParseFormat = _interopRequireDefault(require("dayjs/plugin/customParseFormat"));
|
|
21
|
-
var _templateObject;
|
|
21
|
+
var _templateObject, _templateObject2;
|
|
22
22
|
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
|
|
23
23
|
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { "default": e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n["default"] = e, t && t.set(e, n), n; }
|
|
24
24
|
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
@@ -97,7 +97,9 @@ var DxcDateInput = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref
|
|
|
97
97
|
actionButtonRef === null || actionButtonRef === void 0 ? void 0 : actionButtonRef.setAttribute("role", "combobox");
|
|
98
98
|
actionButtonRef === null || actionButtonRef === void 0 ? void 0 : actionButtonRef.setAttribute("aria-expanded", isOpen);
|
|
99
99
|
actionButtonRef === null || actionButtonRef === void 0 ? void 0 : actionButtonRef.setAttribute("aria-controls", calendarId);
|
|
100
|
-
|
|
100
|
+
if (isOpen) {
|
|
101
|
+
actionButtonRef === null || actionButtonRef === void 0 ? void 0 : actionButtonRef.setAttribute("aria-describedby", calendarId);
|
|
102
|
+
}
|
|
101
103
|
}
|
|
102
104
|
}, [isOpen, disabled, calendarId]);
|
|
103
105
|
var handleCalendarOnClick = function handleCalendarOnClick(newDate) {
|
|
@@ -174,7 +176,8 @@ var DxcDateInput = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref
|
|
|
174
176
|
};
|
|
175
177
|
return /*#__PURE__*/_react["default"].createElement(_styledComponents.ThemeProvider, {
|
|
176
178
|
theme: colorsTheme
|
|
177
|
-
}, /*#__PURE__*/_react["default"].createElement(
|
|
179
|
+
}, /*#__PURE__*/_react["default"].createElement(DateInputContainer, {
|
|
180
|
+
size: size,
|
|
178
181
|
ref: ref
|
|
179
182
|
}, /*#__PURE__*/_react["default"].createElement(Popover.Root, {
|
|
180
183
|
open: isOpen
|
|
@@ -219,4 +222,7 @@ var DxcDateInput = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref
|
|
|
219
222
|
}))))));
|
|
220
223
|
});
|
|
221
224
|
var StyledPopoverContent = (0, _styledComponents["default"])(Popover.Content)(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n z-index: 2147483647;\n &:focus-visible {\n outline: none;\n }\n"])));
|
|
225
|
+
var DateInputContainer = _styledComponents["default"].div(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2["default"])(["\n ", "\n"])), function (props) {
|
|
226
|
+
return props.size == "fillParent" && "width: 100%;";
|
|
227
|
+
});
|
|
222
228
|
var _default = exports["default"] = DxcDateInput;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import React from "react";
|
|
2
|
-
import { userEvent, within, fireEvent, screen } from "@storybook/
|
|
2
|
+
import { userEvent, within, fireEvent, screen } from "@storybook/test";
|
|
3
3
|
import DxcDateInput from "./DateInput";
|
|
4
4
|
import DxcDatePicker from "./DatePicker";
|
|
5
5
|
import YearPicker from "./YearPicker";
|
|
@@ -17,11 +17,10 @@ export default {
|
|
|
17
17
|
title: "Date Input",
|
|
18
18
|
component: DxcDateInput,
|
|
19
19
|
parameters: {
|
|
20
|
-
// TODO: REMOVE
|
|
21
20
|
a11y: {
|
|
22
21
|
config: {
|
|
23
22
|
rules: [
|
|
24
|
-
...disabledRules.map((ruleId) => ({ id: ruleId,
|
|
23
|
+
...disabledRules.map((ruleId) => ({ id: ruleId, enabled: false })),
|
|
25
24
|
...preview?.parameters?.a11y?.config?.rules,
|
|
26
25
|
],
|
|
27
26
|
},
|
|
@@ -209,15 +208,15 @@ const DatePickerButtonStates = () => {
|
|
|
209
208
|
<ThemeProvider theme={colorsTheme}>
|
|
210
209
|
<ExampleContainer pseudoState="pseudo-focus">
|
|
211
210
|
<Title title="Isolated calendar focused" theme="light" level={4} />
|
|
212
|
-
<DxcDatePicker date={dayjs("06-04-1950", "DD-MM-YYYY")} onDateSelect={() => {}} id="test-
|
|
211
|
+
<DxcDatePicker date={dayjs("06-04-1950", "DD-MM-YYYY")} onDateSelect={() => {}} id="test-calendar1" />
|
|
213
212
|
</ExampleContainer>
|
|
214
213
|
<ExampleContainer pseudoState="pseudo-hover">
|
|
215
214
|
<Title title="Isolated calendar hovered" theme="light" level={4} />
|
|
216
|
-
<DxcDatePicker date={dayjs("06-04-1950", "DD-MM-YYYY")} onDateSelect={() => {}} id="test-
|
|
215
|
+
<DxcDatePicker date={dayjs("06-04-1950", "DD-MM-YYYY")} onDateSelect={() => {}} id="test-calendar2" />
|
|
217
216
|
</ExampleContainer>
|
|
218
217
|
<ExampleContainer pseudoState="pseudo-active">
|
|
219
218
|
<Title title="Isolated calendar actived" theme="light" level={4} />
|
|
220
|
-
<DxcDatePicker date={dayjs("06-04-1950", "DD-MM-YYYY")} onDateSelect={() => {}} id="test-
|
|
219
|
+
<DxcDatePicker date={dayjs("06-04-1950", "DD-MM-YYYY")} onDateSelect={() => {}} id="test-calendar3" />
|
|
221
220
|
</ExampleContainer>
|
|
222
221
|
</ThemeProvider>
|
|
223
222
|
</>
|
|
@@ -28,7 +28,7 @@ global.ResizeObserver = /*#__PURE__*/function () {
|
|
|
28
28
|
function ResizeObserver() {
|
|
29
29
|
(0, _classCallCheck2["default"])(this, ResizeObserver);
|
|
30
30
|
}
|
|
31
|
-
(0, _createClass2["default"])(ResizeObserver, [{
|
|
31
|
+
return (0, _createClass2["default"])(ResizeObserver, [{
|
|
32
32
|
key: "observe",
|
|
33
33
|
value: function observe() {}
|
|
34
34
|
}, {
|
|
@@ -38,7 +38,6 @@ global.ResizeObserver = /*#__PURE__*/function () {
|
|
|
38
38
|
key: "disconnect",
|
|
39
39
|
value: function disconnect() {}
|
|
40
40
|
}]);
|
|
41
|
-
return ResizeObserver;
|
|
42
41
|
}();
|
|
43
42
|
describe("DateInput component tests", function () {
|
|
44
43
|
test("Renders with correct label, helper text, optional, placeholder and clearable action", /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee() {
|
|
@@ -308,7 +307,7 @@ describe("DateInput component tests", function () {
|
|
|
308
307
|
_context10.next = 5;
|
|
309
308
|
return _userEvent["default"].click(calendarAction);
|
|
310
309
|
case 5:
|
|
311
|
-
dayButton = getAllByText("10")[0]
|
|
310
|
+
dayButton = getAllByText("10")[0];
|
|
312
311
|
_react2.fireEvent.click(dayButton);
|
|
313
312
|
d = (0, _dayjs["default"])();
|
|
314
313
|
d = d.set("date", 10);
|
|
@@ -374,7 +373,7 @@ describe("DateInput component tests", function () {
|
|
|
374
373
|
_context12.next = 5;
|
|
375
374
|
return _userEvent["default"].click(calendarAction);
|
|
376
375
|
case 5:
|
|
377
|
-
dayButton = getAllByText("31")[0]
|
|
376
|
+
dayButton = getAllByText("31")[0];
|
|
378
377
|
_react2.fireEvent.click(dayButton);
|
|
379
378
|
d = (0, _dayjs["default"])("10-08-2021", "DD-MM-YYYY", true);
|
|
380
379
|
d = d.set("date", 31).set("month", 6);
|
|
@@ -444,31 +443,31 @@ describe("DateInput component tests", function () {
|
|
|
444
443
|
_context14.next = 7;
|
|
445
444
|
return _userEvent["default"].click(calendarAction);
|
|
446
445
|
case 7:
|
|
447
|
-
expect(document.activeElement === getAllByText("1")[0]
|
|
448
|
-
_react2.fireEvent.keyDown(getAllByText("1")[0]
|
|
446
|
+
expect(document.activeElement === getAllByText("1")[0]).toBeTruthy();
|
|
447
|
+
_react2.fireEvent.keyDown(getAllByText("1")[0], {
|
|
449
448
|
key: "ArrowRight",
|
|
450
449
|
code: "ArrowRight",
|
|
451
450
|
keyCode: 39,
|
|
452
451
|
charCode: 39
|
|
453
452
|
});
|
|
454
|
-
expect(document.activeElement === getAllByText("2")[0]
|
|
455
|
-
_react2.fireEvent.keyDown(getAllByText("2")[0]
|
|
453
|
+
expect(document.activeElement === getAllByText("2")[0]).toBeTruthy();
|
|
454
|
+
_react2.fireEvent.keyDown(getAllByText("2")[0], {
|
|
456
455
|
key: "PageUp",
|
|
457
456
|
code: "PageUp",
|
|
458
457
|
keyCode: 33,
|
|
459
458
|
charCode: 33
|
|
460
459
|
});
|
|
461
|
-
expect(document.activeElement === getAllByText("2")[0]
|
|
460
|
+
expect(document.activeElement === getAllByText("2")[0]).toBeTruthy();
|
|
462
461
|
expect(getByText("December 2009")).toBeTruthy();
|
|
463
|
-
_react2.fireEvent.keyDown(getAllByText("2")[0]
|
|
462
|
+
_react2.fireEvent.keyDown(getAllByText("2")[0], {
|
|
464
463
|
key: "PageDown",
|
|
465
464
|
code: "PageDown",
|
|
466
465
|
keyCode: 34,
|
|
467
466
|
charCode: 34
|
|
468
467
|
});
|
|
469
|
-
expect(document.activeElement === getAllByText("2")[0]
|
|
468
|
+
expect(document.activeElement === getAllByText("2")[0]).toBeTruthy();
|
|
470
469
|
expect(getByText("January 2010")).toBeTruthy();
|
|
471
|
-
_react2.fireEvent.keyDown(getAllByText("2")[0]
|
|
470
|
+
_react2.fireEvent.keyDown(getAllByText("2")[0], {
|
|
472
471
|
key: "PageDown",
|
|
473
472
|
code: "PageDown",
|
|
474
473
|
keyCode: 34,
|
|
@@ -476,7 +475,7 @@ describe("DateInput component tests", function () {
|
|
|
476
475
|
shiftKey: true
|
|
477
476
|
});
|
|
478
477
|
expect(getByText("January 2011")).toBeTruthy();
|
|
479
|
-
_react2.fireEvent.keyDown(getAllByText("2")[0]
|
|
478
|
+
_react2.fireEvent.keyDown(getAllByText("2")[0], {
|
|
480
479
|
key: "PageUp",
|
|
481
480
|
code: "PageUp",
|
|
482
481
|
keyCode: 33,
|
|
@@ -484,14 +483,14 @@ describe("DateInput component tests", function () {
|
|
|
484
483
|
shiftKey: true
|
|
485
484
|
});
|
|
486
485
|
expect(getByText("January 2010")).toBeTruthy();
|
|
487
|
-
expect(document.activeElement === getAllByText("2")[0]
|
|
488
|
-
_react2.fireEvent.click(getAllByText("2")[0]
|
|
486
|
+
expect(document.activeElement === getAllByText("2")[0]).toBeTruthy();
|
|
487
|
+
_react2.fireEvent.click(getAllByText("2")[0], {
|
|
489
488
|
key: " ",
|
|
490
489
|
code: "Space",
|
|
491
490
|
keyCode: 32,
|
|
492
491
|
charCode: 32
|
|
493
492
|
});
|
|
494
|
-
expect(getAllByText("2")[0].
|
|
493
|
+
expect(getAllByText("2")[0].getAttribute("aria-selected")).toBe("true");
|
|
495
494
|
_react2.fireEvent.keyDown(document, {
|
|
496
495
|
key: "Escape",
|
|
497
496
|
code: "Escape",
|
|
@@ -518,42 +517,42 @@ describe("DateInput component tests", function () {
|
|
|
518
517
|
_context15.next = 7;
|
|
519
518
|
return _userEvent["default"].click(calendarAction);
|
|
520
519
|
case 7:
|
|
521
|
-
expect(document.activeElement === getAllByText("1")[0]
|
|
522
|
-
_react2.fireEvent.keyDown(getAllByText("1")[0]
|
|
520
|
+
expect(document.activeElement === getAllByText("1")[0]).toBeTruthy();
|
|
521
|
+
_react2.fireEvent.keyDown(getAllByText("1")[0], {
|
|
523
522
|
key: "ArrowDown",
|
|
524
523
|
code: "ArrowDown",
|
|
525
524
|
keyCode: 40,
|
|
526
525
|
charCode: 40
|
|
527
526
|
});
|
|
528
|
-
expect(document.activeElement === getAllByText("8")[0]
|
|
529
|
-
_react2.fireEvent.keyDown(getAllByText("8")[0]
|
|
527
|
+
expect(document.activeElement === getAllByText("8")[0]).toBeTruthy();
|
|
528
|
+
_react2.fireEvent.keyDown(getAllByText("8")[0], {
|
|
530
529
|
key: "ArrowDown",
|
|
531
530
|
code: "ArrowDown",
|
|
532
531
|
keyCode: 40,
|
|
533
532
|
charCode: 40
|
|
534
533
|
});
|
|
535
|
-
expect(document.activeElement === getAllByText("15")[0]
|
|
536
|
-
_react2.fireEvent.keyDown(getAllByText("15")[0]
|
|
534
|
+
expect(document.activeElement === getAllByText("15")[0]).toBeTruthy();
|
|
535
|
+
_react2.fireEvent.keyDown(getAllByText("15")[0], {
|
|
537
536
|
key: "ArrowUp",
|
|
538
537
|
code: "ArrowUp",
|
|
539
538
|
keyCode: 38,
|
|
540
539
|
charCode: 38
|
|
541
540
|
});
|
|
542
|
-
expect(document.activeElement === getAllByText("8")[0]
|
|
543
|
-
_react2.fireEvent.keyDown(getAllByText("8")[0]
|
|
541
|
+
expect(document.activeElement === getAllByText("8")[0]).toBeTruthy();
|
|
542
|
+
_react2.fireEvent.keyDown(getAllByText("8")[0], {
|
|
544
543
|
key: "End",
|
|
545
544
|
code: "End",
|
|
546
545
|
keyCode: 35,
|
|
547
546
|
charCode: 35
|
|
548
547
|
});
|
|
549
|
-
expect(document.activeElement === getAllByText("10")[0]
|
|
550
|
-
_react2.fireEvent.keyDown(getAllByText("10")[0]
|
|
548
|
+
expect(document.activeElement === getAllByText("10")[0]).toBeTruthy();
|
|
549
|
+
_react2.fireEvent.keyDown(getAllByText("10")[0], {
|
|
551
550
|
key: "Home",
|
|
552
551
|
code: "Home",
|
|
553
552
|
keyCode: 36,
|
|
554
553
|
charCode: 36
|
|
555
554
|
});
|
|
556
|
-
_react2.fireEvent.keyDown(getAllByText("10")[0]
|
|
555
|
+
_react2.fireEvent.keyDown(getAllByText("10")[0], {
|
|
557
556
|
key: " ",
|
|
558
557
|
code: "Space",
|
|
559
558
|
keyCode: 32,
|
|
@@ -728,16 +727,16 @@ describe("DateInput component tests", function () {
|
|
|
728
727
|
calendarAction = getByRole("combobox");
|
|
729
728
|
expect(calendarAction.getAttribute("aria-autocomplete")).toBeNull();
|
|
730
729
|
expect(calendarAction.getAttribute("aria-controls")).toBeTruthy();
|
|
731
|
-
expect(calendarAction.getAttribute("aria-describedby")).
|
|
732
|
-
expect(calendarAction.getAttribute("aria-describedby") === calendarAction.getAttribute("aria-controls")).toBeTruthy();
|
|
730
|
+
expect(calendarAction.getAttribute("aria-describedby")).toBeFalsy();
|
|
733
731
|
expect(calendarAction.getAttribute("aria-expanded")).toBe("false");
|
|
734
|
-
_context17.next =
|
|
732
|
+
_context17.next = 12;
|
|
735
733
|
return _userEvent["default"].click(calendarAction);
|
|
736
|
-
case
|
|
734
|
+
case 12:
|
|
737
735
|
datePicker = getByRole("dialog");
|
|
738
736
|
expect(datePicker.getAttribute("aria-modal")).toBe("true");
|
|
739
737
|
expect(calendarAction.getAttribute("aria-expanded")).toBe("true");
|
|
740
738
|
expect(document.getElementById(calendarAction.getAttribute("aria-describedby"))).toBeTruthy();
|
|
739
|
+
expect(calendarAction.getAttribute("aria-describedby") === calendarAction.getAttribute("aria-controls")).toBeTruthy();
|
|
741
740
|
_context17.next = 19;
|
|
742
741
|
return _userEvent["default"].type(calendarAction, "{esc}");
|
|
743
742
|
case 19:
|
package/date-input/YearPicker.js
CHANGED
|
@@ -26,13 +26,14 @@ var YearPicker = function YearPicker(_ref) {
|
|
|
26
26
|
var onYearSelect = _ref.onYearSelect,
|
|
27
27
|
selectedDate = _ref.selectedDate,
|
|
28
28
|
today = _ref.today;
|
|
29
|
+
var id = (0, _react.useId)();
|
|
29
30
|
var _useState = (0, _react.useState)(selectedDate ? selectedDate.get("year") : (0, _dayjs["default"])().get("year")),
|
|
30
31
|
_useState2 = (0, _slicedToArray2["default"])(_useState, 2),
|
|
31
32
|
yearToFocus = _useState2[0],
|
|
32
33
|
setYearToFocus = _useState2[1];
|
|
33
34
|
(0, _react.useEffect)(function () {
|
|
34
35
|
var _yearToFocusEl$scroll;
|
|
35
|
-
var yearToFocusEl = document.getElementById("
|
|
36
|
+
var yearToFocusEl = document.getElementById("".concat(id, "_year_").concat(yearToFocus));
|
|
36
37
|
yearToFocusEl === null || yearToFocusEl === void 0 ? void 0 : (_yearToFocusEl$scroll = yearToFocusEl.scrollIntoView) === null || _yearToFocusEl$scroll === void 0 ? void 0 : _yearToFocusEl$scroll.call(yearToFocusEl, {
|
|
37
38
|
block: "nearest",
|
|
38
39
|
inline: "start"
|
|
@@ -53,7 +54,10 @@ var YearPicker = function YearPicker(_ref) {
|
|
|
53
54
|
break;
|
|
54
55
|
}
|
|
55
56
|
};
|
|
56
|
-
return /*#__PURE__*/_react["default"].createElement(YearPickerContainer,
|
|
57
|
+
return /*#__PURE__*/_react["default"].createElement(YearPickerContainer, {
|
|
58
|
+
role: "listbox",
|
|
59
|
+
"aria-label": "Year Picker"
|
|
60
|
+
}, yearList.map(function (year) {
|
|
57
61
|
return /*#__PURE__*/_react["default"].createElement(YearPickerButton, {
|
|
58
62
|
"aria-label": year,
|
|
59
63
|
key: year,
|
|
@@ -64,10 +68,11 @@ var YearPicker = function YearPicker(_ref) {
|
|
|
64
68
|
onKeyDown: function onKeyDown(event) {
|
|
65
69
|
return handleDayKeyboardEvent(event);
|
|
66
70
|
},
|
|
67
|
-
id: "
|
|
71
|
+
id: "".concat(id, "_year_").concat(year),
|
|
68
72
|
onClick: function onClick() {
|
|
69
73
|
onYearSelect(year);
|
|
70
|
-
}
|
|
74
|
+
},
|
|
75
|
+
role: "option"
|
|
71
76
|
}, year);
|
|
72
77
|
}));
|
|
73
78
|
};
|
|
@@ -10,7 +10,7 @@ import { HalstackProvider } from "../HalstackContext";
|
|
|
10
10
|
import DxcHeading from "../heading/Heading";
|
|
11
11
|
import DxcParagraph from "../paragraph/Paragraph";
|
|
12
12
|
import DxcAlert from "../alert/Alert";
|
|
13
|
-
import { userEvent, within } from "@storybook/
|
|
13
|
+
import { userEvent, within } from "@storybook/test";
|
|
14
14
|
import { INITIAL_VIEWPORTS } from "@storybook/addon-viewport";
|
|
15
15
|
|
|
16
16
|
export default {
|
|
@@ -362,8 +362,7 @@ MobileResponsiveDialog.parameters = {
|
|
|
362
362
|
};
|
|
363
363
|
|
|
364
364
|
export const ScrollDialog = ScrollingDialog.bind({});
|
|
365
|
-
ScrollDialog.play = async (
|
|
366
|
-
const canvas = within(canvasElement);
|
|
365
|
+
ScrollDialog.play = async () => {
|
|
367
366
|
await userEvent.tab();
|
|
368
367
|
await userEvent.tab();
|
|
369
368
|
await userEvent.tab();
|
package/dialog/Dialog.test.js
CHANGED
|
@@ -38,7 +38,7 @@ global.ResizeObserver = /*#__PURE__*/function () {
|
|
|
38
38
|
function ResizeObserver() {
|
|
39
39
|
(0, _classCallCheck2["default"])(this, ResizeObserver);
|
|
40
40
|
}
|
|
41
|
-
(0, _createClass2["default"])(ResizeObserver, [{
|
|
41
|
+
return (0, _createClass2["default"])(ResizeObserver, [{
|
|
42
42
|
key: "observe",
|
|
43
43
|
value: function observe() {}
|
|
44
44
|
}, {
|
|
@@ -48,7 +48,6 @@ global.ResizeObserver = /*#__PURE__*/function () {
|
|
|
48
48
|
key: "disconnect",
|
|
49
49
|
value: function disconnect() {}
|
|
50
50
|
}]);
|
|
51
|
-
return ResizeObserver;
|
|
52
51
|
}();
|
|
53
52
|
var options = [{
|
|
54
53
|
label: "Female",
|
|
@@ -40,7 +40,7 @@ global.ResizeObserver = /*#__PURE__*/function () {
|
|
|
40
40
|
function ResizeObserver() {
|
|
41
41
|
(0, _classCallCheck2["default"])(this, ResizeObserver);
|
|
42
42
|
}
|
|
43
|
-
(0, _createClass2["default"])(ResizeObserver, [{
|
|
43
|
+
return (0, _createClass2["default"])(ResizeObserver, [{
|
|
44
44
|
key: "observe",
|
|
45
45
|
value: function observe() {}
|
|
46
46
|
}, {
|
|
@@ -50,7 +50,6 @@ global.ResizeObserver = /*#__PURE__*/function () {
|
|
|
50
50
|
key: "disconnect",
|
|
51
51
|
value: function disconnect() {}
|
|
52
52
|
}]);
|
|
53
|
-
return ResizeObserver;
|
|
54
53
|
}();
|
|
55
54
|
var options = [{
|
|
56
55
|
value: "1",
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import React from "react";
|
|
2
|
-
import { userEvent, within } from "@storybook/
|
|
2
|
+
import { userEvent, within } from "@storybook/test";
|
|
3
3
|
import DxcDropdown from "./Dropdown";
|
|
4
4
|
import Title from "../../.storybook/components/Title";
|
|
5
5
|
import ExampleContainer from "../../.storybook/components/ExampleContainer";
|
|
@@ -27,7 +27,7 @@ global.ResizeObserver = /*#__PURE__*/function () {
|
|
|
27
27
|
function ResizeObserver() {
|
|
28
28
|
(0, _classCallCheck2["default"])(this, ResizeObserver);
|
|
29
29
|
}
|
|
30
|
-
(0, _createClass2["default"])(ResizeObserver, [{
|
|
30
|
+
return (0, _createClass2["default"])(ResizeObserver, [{
|
|
31
31
|
key: "observe",
|
|
32
32
|
value: function observe() {}
|
|
33
33
|
}, {
|
|
@@ -37,7 +37,6 @@ global.ResizeObserver = /*#__PURE__*/function () {
|
|
|
37
37
|
key: "disconnect",
|
|
38
38
|
value: function disconnect() {}
|
|
39
39
|
}]);
|
|
40
|
-
return ResizeObserver;
|
|
41
40
|
}();
|
|
42
41
|
var options = [{
|
|
43
42
|
value: "1",
|
package/file-input/FileInput.js
CHANGED
|
@@ -79,9 +79,7 @@ var isFileIncluded = function isFileIncluded(file, fileList) {
|
|
|
79
79
|
});
|
|
80
80
|
};
|
|
81
81
|
var DxcFileInput = /*#__PURE__*/_react["default"].forwardRef(function (_ref3, ref) {
|
|
82
|
-
var _ref3$
|
|
83
|
-
name = _ref3$name === void 0 ? "" : _ref3$name,
|
|
84
|
-
_ref3$mode = _ref3.mode,
|
|
82
|
+
var _ref3$mode = _ref3.mode,
|
|
85
83
|
mode = _ref3$mode === void 0 ? "file" : _ref3$mode,
|
|
86
84
|
_ref3$label = _ref3.label,
|
|
87
85
|
label = _ref3$label === void 0 ? "" : _ref3$label,
|
package/file-input/types.d.ts
CHANGED
package/grid/Grid.stories.tsx
CHANGED
|
@@ -209,7 +209,9 @@ const ColoredContainer = styled.div<{ color?: string; width?: string; height?: s
|
|
|
209
209
|
padding: 1rem;
|
|
210
210
|
border: 1px solid #a46ede;
|
|
211
211
|
border-radius: 0.5rem;
|
|
212
|
-
font-family:
|
|
212
|
+
font-family:
|
|
213
|
+
Open Sans,
|
|
214
|
+
sans-serif;
|
|
213
215
|
font-size: 1.5rem;
|
|
214
216
|
font-weight: bold;
|
|
215
217
|
color: #a46ede;
|
|
@@ -3,7 +3,7 @@ import DxcHeader from "./Header";
|
|
|
3
3
|
import DxcButton from "../button/Button";
|
|
4
4
|
import Title from "../../.storybook/components/Title";
|
|
5
5
|
import ExampleContainer from "../../.storybook/components/ExampleContainer";
|
|
6
|
-
import { userEvent, waitFor, within } from "@storybook/
|
|
6
|
+
import { userEvent, waitFor, within } from "@storybook/test";
|
|
7
7
|
import DxcFlex from "../flex/Flex";
|
|
8
8
|
import DxcLink from "../link/Link";
|
|
9
9
|
import { HalstackProvider } from "../HalstackContext";
|
|
@@ -27,7 +27,7 @@ global.ResizeObserver = /*#__PURE__*/function () {
|
|
|
27
27
|
function ResizeObserver() {
|
|
28
28
|
(0, _classCallCheck2["default"])(this, ResizeObserver);
|
|
29
29
|
}
|
|
30
|
-
(0, _createClass2["default"])(ResizeObserver, [{
|
|
30
|
+
return (0, _createClass2["default"])(ResizeObserver, [{
|
|
31
31
|
key: "observe",
|
|
32
32
|
value: function observe() {}
|
|
33
33
|
}, {
|
|
@@ -37,7 +37,6 @@ global.ResizeObserver = /*#__PURE__*/function () {
|
|
|
37
37
|
key: "disconnect",
|
|
38
38
|
value: function disconnect() {}
|
|
39
39
|
}]);
|
|
40
|
-
return ResizeObserver;
|
|
41
40
|
}();
|
|
42
41
|
describe("Number input component accessibility tests", function () {
|
|
43
42
|
it("Should not have basic accessibility issues", /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee() {
|