@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.
Files changed (58) hide show
  1. package/breadcrumbs/Breadcrumbs.stories.tsx +1 -1
  2. package/breadcrumbs/Breadcrumbs.test.js +1 -2
  3. package/card/Card.stories.tsx +1 -1
  4. package/chip/Chip.stories.tsx +2 -6
  5. package/contextual-menu/ContextualMenu.js +24 -4
  6. package/contextual-menu/ContextualMenu.stories.tsx +5 -14
  7. package/contextual-menu/ContextualMenu.test.js +108 -66
  8. package/contextual-menu/GroupItem.js +9 -9
  9. package/contextual-menu/ItemAction.d.ts +1 -1
  10. package/contextual-menu/ItemAction.js +8 -9
  11. package/contextual-menu/SingleItem.d.ts +1 -1
  12. package/contextual-menu/SingleItem.js +14 -14
  13. package/contextual-menu/types.d.ts +9 -6
  14. package/date-input/Calendar.js +46 -30
  15. package/date-input/DateInput.accessibility.test.js +12 -13
  16. package/date-input/DateInput.js +9 -3
  17. package/date-input/DateInput.stories.tsx +5 -6
  18. package/date-input/DateInput.test.js +30 -31
  19. package/date-input/YearPicker.js +9 -4
  20. package/dialog/Dialog.stories.tsx +2 -3
  21. package/dialog/Dialog.test.js +1 -2
  22. package/dropdown/Dropdown.accessibility.test.js +1 -2
  23. package/dropdown/Dropdown.stories.tsx +1 -1
  24. package/dropdown/Dropdown.test.js +1 -2
  25. package/file-input/FileInput.js +1 -3
  26. package/file-input/types.d.ts +0 -4
  27. package/grid/Grid.stories.tsx +3 -1
  28. package/header/Header.stories.tsx +1 -1
  29. package/number-input/NumberInput.accessibility.test.js +1 -2
  30. package/number-input/NumberInput.stories.tsx +2 -16
  31. package/number-input/NumberInput.test.js +1 -2
  32. package/package.json +17 -15
  33. package/paginator/Paginator.accessibility.test.js +1 -2
  34. package/paginator/Paginator.test.js +1 -2
  35. package/password-input/PasswordInput.accessibility.test.js +1 -2
  36. package/password-input/PasswordInput.stories.tsx +1 -1
  37. package/password-input/PasswordInput.test.js +1 -2
  38. package/resultset-table/ResultsetTable.accessibility.test.js +1 -2
  39. package/resultset-table/ResultsetTable.stories.tsx +1 -1
  40. package/resultset-table/ResultsetTable.test.js +1 -2
  41. package/select/Select.accessibility.test.js +1 -2
  42. package/select/Select.stories.tsx +1 -1
  43. package/select/Select.test.js +1 -2
  44. package/sidenav/Sidenav.stories.tsx +1 -1
  45. package/slider/Slider.accessibility.test.js +1 -2
  46. package/slider/Slider.test.js +1 -2
  47. package/table/Table.accessibility.test.js +1 -2
  48. package/table/Table.stories.tsx +1 -1
  49. package/table/Table.test.js +1 -2
  50. package/tabs/Tabs.stories.tsx +2 -2
  51. package/tag/Tag.stories.tsx +1 -1
  52. package/text-input/TextInput.accessibility.test.js +1 -2
  53. package/text-input/TextInput.stories.tsx +2 -8
  54. package/text-input/TextInput.test.js +1 -2
  55. package/toggle-group/ToggleGroup.stories.tsx +1 -1
  56. package/typography/Typography.stories.tsx +1 -3
  57. package/utils/FocusLock.js +2 -1
  58. package/wizard/Wizard.stories.tsx +1 -1
@@ -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 _Flex = _interopRequireDefault(require("../flex/Flex"));
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("day_".concat(dateToFocus.get("date"), "_month").concat(dateToFocus.get("month")))) === null || _document$getElementB === void 0 ? void 0 : _document$getElementB.focus();
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, null, /*#__PURE__*/_react["default"].createElement(_Flex["default"], {
150
- alignItems: "center",
151
- justifyContent: "space-between"
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(DayCellsContainer, {
157
- onBlur: handleOnBlur
158
- }, dayCells.map(function (date, index) {
159
- return /*#__PURE__*/_react["default"].createElement(DayCell, {
160
- onKeyDown: function onKeyDown(event) {
161
- return handleDayKeyboardEvent(event, date);
162
- },
163
- "aria-label": date.day,
164
- id: "day_".concat(date.day, "_month").concat(date.month),
165
- key: "day_".concat(index),
166
- onClick: function onClick() {
167
- return onDateClickHandler(date);
168
- },
169
- selected: isDaySelected(date, selectedDate),
170
- actualMonth: date.month === innerDate.get("month"),
171
- autoFocus: date.day === dateToFocus.get("date") && date.month === dateToFocus.get("month"),
172
- "aria-selected": isDaySelected(date, selectedDate),
173
- tabIndex: date.day === dateToFocus.get("date") && date.month === dateToFocus.get("month") ? 0 : -1,
174
- isCurrentDay: today.get("date") === date.day && today.get("month") === innerDate.get("month") && today.get("month") === date.month && today.get("year") === innerDate.get("year")
175
- }, date.day);
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 WeekHeaderCell = _styledComponents["default"].span(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n align-items: center;\n justify-content: center;\n width: 36px;\n height: 36px;\n"])));
188
- var DayCellsContainer = _styledComponents["default"].div(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2["default"])(["\n box-sizing: border-box;\n display: flex;\n gap: 4px;\n flex-wrap: wrap;\n justify-content: space-between;\n"])));
189
- var DayCell = _styledComponents["default"].button(_templateObject4 || (_templateObject4 = (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) {
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;
@@ -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
- actionButtonRef === null || actionButtonRef === void 0 ? void 0 : actionButtonRef.setAttribute("aria-describedby", calendarId);
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("div", {
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/testing-library";
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, reviewOnFail: true })),
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-calendar" />
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-calendar" />
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-calendar" />
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].closest("button");
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].closest("button");
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].closest("button")).toBeTruthy();
448
- _react2.fireEvent.keyDown(getAllByText("1")[0].closest("button"), {
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].closest("button")).toBeTruthy();
455
- _react2.fireEvent.keyDown(getAllByText("2")[0].closest("button"), {
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].closest("button")).toBeTruthy();
460
+ expect(document.activeElement === getAllByText("2")[0]).toBeTruthy();
462
461
  expect(getByText("December 2009")).toBeTruthy();
463
- _react2.fireEvent.keyDown(getAllByText("2")[0].closest("button"), {
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].closest("button")).toBeTruthy();
468
+ expect(document.activeElement === getAllByText("2")[0]).toBeTruthy();
470
469
  expect(getByText("January 2010")).toBeTruthy();
471
- _react2.fireEvent.keyDown(getAllByText("2")[0].closest("button"), {
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].closest("button"), {
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].closest("button")).toBeTruthy();
488
- _react2.fireEvent.click(getAllByText("2")[0].closest("button"), {
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].closest("button").getAttribute("aria-selected")).toBe("true");
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].closest("button")).toBeTruthy();
522
- _react2.fireEvent.keyDown(getAllByText("1")[0].closest("button"), {
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].closest("button")).toBeTruthy();
529
- _react2.fireEvent.keyDown(getAllByText("8")[0].closest("button"), {
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].closest("button")).toBeTruthy();
536
- _react2.fireEvent.keyDown(getAllByText("15")[0].closest("button"), {
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].closest("button")).toBeTruthy();
543
- _react2.fireEvent.keyDown(getAllByText("8")[0].closest("button"), {
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].closest("button")).toBeTruthy();
550
- _react2.fireEvent.keyDown(getAllByText("10")[0].closest("button"), {
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].closest("button"), {
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")).toBeTruthy();
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 = 13;
732
+ _context17.next = 12;
735
733
  return _userEvent["default"].click(calendarAction);
736
- case 13:
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:
@@ -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("year_".concat(yearToFocus));
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, null, yearList.map(function (year) {
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: "year_".concat(year),
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/testing-library";
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 ({ canvasElement }) => {
366
- const canvas = within(canvasElement);
365
+ ScrollDialog.play = async () => {
367
366
  await userEvent.tab();
368
367
  await userEvent.tab();
369
368
  await userEvent.tab();
@@ -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/testing-library";
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",
@@ -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$name = _ref3.name,
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,
@@ -20,10 +20,6 @@ export type FileData = {
20
20
  preview?: string;
21
21
  };
22
22
  type CommonProps = {
23
- /**
24
- * @deprecated Name attribute.
25
- */
26
- name?: string;
27
23
  /**
28
24
  * Text to be placed above the component.
29
25
  */
@@ -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: Open Sans, sans-serif;
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/testing-library";
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() {