@dxc-technology/halstack-react 0.0.0-1b3d457 → 0.0.0-1b8b460

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 (80) hide show
  1. package/HalstackContext.js +7 -8
  2. package/accordion/types.d.ts +1 -0
  3. package/accordion-group/types.d.ts +1 -0
  4. package/box/types.d.ts +1 -0
  5. package/card/types.d.ts +1 -0
  6. package/checkbox/Checkbox.d.ts +2 -2
  7. package/checkbox/Checkbox.js +16 -16
  8. package/checkbox/Checkbox.stories.tsx +79 -59
  9. package/checkbox/types.d.ts +4 -0
  10. package/common/variables.js +129 -125
  11. package/date-input/Calendar.d.ts +4 -0
  12. package/date-input/Calendar.js +258 -0
  13. package/date-input/DateInput.js +77 -222
  14. package/date-input/DateInput.stories.tsx +30 -17
  15. package/date-input/DateInput.test.js +411 -138
  16. package/date-input/DatePicker.d.ts +4 -0
  17. package/date-input/DatePicker.js +160 -0
  18. package/date-input/YearPicker.d.ts +4 -0
  19. package/date-input/YearPicker.js +115 -0
  20. package/date-input/types.d.ts +53 -0
  21. package/dialog/Dialog.js +4 -4
  22. package/dialog/Dialog.stories.tsx +56 -0
  23. package/dialog/types.d.ts +1 -0
  24. package/dropdown/Dropdown.js +37 -33
  25. package/dropdown/Dropdown.test.js +19 -25
  26. package/dropdown/DropdownMenuItem.js +1 -1
  27. package/file-input/FileInput.d.ts +2 -2
  28. package/file-input/FileInput.js +177 -219
  29. package/file-input/FileInput.stories.tsx +38 -10
  30. package/file-input/FileInput.test.js +53 -12
  31. package/file-input/FileItem.d.ts +4 -14
  32. package/file-input/FileItem.js +38 -63
  33. package/file-input/types.d.ts +17 -0
  34. package/flex/Flex.d.ts +1 -1
  35. package/flex/Flex.js +31 -19
  36. package/flex/types.d.ts +14 -3
  37. package/footer/types.d.ts +1 -0
  38. package/header/types.d.ts +1 -0
  39. package/link/Link.js +1 -1
  40. package/number-input/NumberInput.test.js +43 -7
  41. package/package.json +7 -12
  42. package/paginator/Paginator.js +2 -2
  43. package/paginator/Paginator.test.js +1 -1
  44. package/password-input/PasswordInput.test.js +13 -12
  45. package/quick-nav/QuickNav.js +11 -12
  46. package/quick-nav/QuickNav.stories.tsx +97 -19
  47. package/radio-group/Radio.d.ts +1 -1
  48. package/radio-group/Radio.js +43 -28
  49. package/radio-group/RadioGroup.js +15 -13
  50. package/radio-group/RadioGroup.stories.tsx +1 -0
  51. package/radio-group/RadioGroup.test.js +123 -96
  52. package/radio-group/types.d.ts +2 -2
  53. package/resultsetTable/Icons.d.ts +7 -0
  54. package/resultsetTable/Icons.js +51 -0
  55. package/resultsetTable/ResultsetTable.js +48 -107
  56. package/resultsetTable/ResultsetTable.stories.tsx +50 -25
  57. package/resultsetTable/ResultsetTable.test.js +23 -41
  58. package/resultsetTable/types.d.ts +2 -2
  59. package/select/Select.js +3 -1
  60. package/select/Select.stories.tsx +2 -5
  61. package/select/Select.test.js +267 -209
  62. package/slider/Slider.d.ts +2 -2
  63. package/slider/Slider.js +15 -11
  64. package/slider/types.d.ts +4 -0
  65. package/spinner/Spinner.js +2 -2
  66. package/switch/Switch.d.ts +3 -3
  67. package/switch/Switch.js +93 -82
  68. package/switch/Switch.test.js +26 -13
  69. package/switch/types.d.ts +6 -1
  70. package/table/Table.js +1 -1
  71. package/table/Table.test.js +1 -1
  72. package/tabs/Tabs.js +3 -3
  73. package/tabs/Tabs.stories.tsx +0 -1
  74. package/tabs-nav/Tab.js +1 -1
  75. package/text-input/Suggestion.js +32 -5
  76. package/text-input/TextInput.js +165 -151
  77. package/text-input/TextInput.stories.tsx +6 -1
  78. package/text-input/TextInput.test.js +658 -647
  79. package/text-input/types.d.ts +5 -0
  80. package/common/RequiredComponent.js +0 -32
@@ -17,18 +17,8 @@ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/sli
17
17
 
18
18
  var _react = _interopRequireWildcard(require("react"));
19
19
 
20
- var _pickers = require("@material-ui/pickers");
21
-
22
- var _core = require("@material-ui/core");
23
-
24
- var _ClickAwayListener = _interopRequireDefault(require("@material-ui/core/ClickAwayListener"));
25
-
26
- var _Popover = _interopRequireDefault(require("@material-ui/core/Popover"));
27
-
28
20
  var _dayjs = _interopRequireDefault(require("dayjs"));
29
21
 
30
- var _dayjs2 = _interopRequireDefault(require("@date-io/dayjs"));
31
-
32
22
  var _styledComponents = _interopRequireWildcard(require("styled-components"));
33
23
 
34
24
  var _useTheme = _interopRequireDefault(require("../useTheme"));
@@ -37,6 +27,14 @@ var _useTranslatedLabels = _interopRequireDefault(require("../useTranslatedLabel
37
27
 
38
28
  var _TextInput = _interopRequireDefault(require("../text-input/TextInput"));
39
29
 
30
+ var _DatePicker = _interopRequireDefault(require("./DatePicker"));
31
+
32
+ var Popover = _interopRequireWildcard(require("@radix-ui/react-popover"));
33
+
34
+ var _customParseFormat = _interopRequireDefault(require("dayjs/plugin/customParseFormat"));
35
+
36
+ var _uuid = require("uuid");
37
+
40
38
  var _templateObject;
41
39
 
42
40
  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); }
@@ -47,8 +45,23 @@ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (O
47
45
 
48
46
  function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
49
47
 
48
+ _dayjs["default"].extend(_customParseFormat["default"]);
49
+
50
+ var calendarIcon = /*#__PURE__*/_react["default"].createElement("svg", {
51
+ xmlns: "http://www.w3.org/2000/svg",
52
+ height: "24",
53
+ viewBox: "0 0 24 24",
54
+ width: "24",
55
+ fill: "currentColor"
56
+ }, /*#__PURE__*/_react["default"].createElement("path", {
57
+ d: "M0 0h24v24H0z",
58
+ fill: "none"
59
+ }), /*#__PURE__*/_react["default"].createElement("path", {
60
+ d: "M20 3h-1V1h-2v2H7V1H5v2H4c-1.1 0-2 .9-2 2v16c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 18H4V8h16v13z"
61
+ }));
62
+
50
63
  var getValueForPicker = function getValueForPicker(value, format) {
51
- return (0, _dayjs["default"])(value, format.toUpperCase(), true).format();
64
+ return (0, _dayjs["default"])(value, format.toUpperCase(), true);
52
65
  };
53
66
 
54
67
  var DxcDateInput = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref) {
@@ -83,29 +96,28 @@ var DxcDateInput = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref
83
96
  isOpen = _useState4[0],
84
97
  setIsOpen = _useState4[1];
85
98
 
86
- var _useState5 = (0, _react.useState)(null),
87
- _useState6 = (0, _slicedToArray2["default"])(_useState5, 2),
88
- anchorEl = _useState6[0],
89
- setAnchorEl = _useState6[1];
99
+ var _useState5 = (0, _react.useState)("date-picker-".concat((0, _uuid.v4)())),
100
+ _useState6 = (0, _slicedToArray2["default"])(_useState5, 1),
101
+ calendarId = _useState6[0];
90
102
 
91
103
  var colorsTheme = (0, _useTheme["default"])();
92
104
  var translatedLabels = (0, _useTranslatedLabels["default"])();
93
- var refDate = ref || (0, _react.useRef)(null);
94
-
95
- var handleCalendarOnKeyDown = function handleCalendarOnKeyDown(event) {
96
- switch (event.key) {
97
- case "Esc":
98
- case "Escape":
99
- event.preventDefault();
100
- setIsOpen(false);
101
- break;
105
+ var dateRef = (0, _react.useRef)(null);
106
+ (0, _react.useLayoutEffect)(function () {
107
+ if (!disabled) {
108
+ var actionButtonRef = dateRef === null || dateRef === void 0 ? void 0 : dateRef.current.querySelector("[title='Open calendar']");
109
+ actionButtonRef === null || actionButtonRef === void 0 ? void 0 : actionButtonRef.setAttribute("aria-haspopup", true);
110
+ actionButtonRef === null || actionButtonRef === void 0 ? void 0 : actionButtonRef.setAttribute("role", "combobox");
111
+ actionButtonRef === null || actionButtonRef === void 0 ? void 0 : actionButtonRef.setAttribute("aria-expanded", isOpen);
112
+ actionButtonRef === null || actionButtonRef === void 0 ? void 0 : actionButtonRef.setAttribute("aria-controls", calendarId);
113
+ actionButtonRef === null || actionButtonRef === void 0 ? void 0 : actionButtonRef.setAttribute("aria-describedby", calendarId);
102
114
  }
103
- };
115
+ }, [isOpen, disabled, calendarId]);
104
116
 
105
117
  var handleCalendarOnClick = function handleCalendarOnClick(newDate) {
106
- var newValue = (0, _dayjs["default"])(newDate).format(format.toUpperCase());
118
+ var newValue = newDate.format(format.toUpperCase());
107
119
  value !== null && value !== void 0 ? value : setInnerValue(newValue);
108
- newDate !== null && newDate !== void 0 && newDate.toJSON() ? onChange === null || onChange === void 0 ? void 0 : onChange({
120
+ newDate !== null && newDate !== void 0 && newDate.set("day", newDate.get("date")).toJSON() ? onChange === null || onChange === void 0 ? void 0 : onChange({
109
121
  value: newValue,
110
122
  date: newDate
111
123
  }) : onChange === null || onChange === void 0 ? void 0 : onChange({
@@ -117,7 +129,7 @@ var DxcDateInput = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref
117
129
  var newValue = _ref2.value,
118
130
  inputError = _ref2.error;
119
131
  value !== null && value !== void 0 ? value : setInnerValue(newValue);
120
- var dayjsDate = (0, _dayjs["default"])(newValue, format.toUpperCase(), true);
132
+ var dayjsDate = getValueForPicker(newValue, format);
121
133
  var invalidDateMessage = newValue !== "" && !dayjsDate.isValid() && translatedLabels.dateInput.invalidDateErrorMessage;
122
134
  var callbackParams = inputError || invalidDateMessage ? {
123
135
  value: newValue,
@@ -133,7 +145,7 @@ var DxcDateInput = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref
133
145
  var handleIOnBlur = function handleIOnBlur(_ref3) {
134
146
  var value = _ref3.value,
135
147
  inputError = _ref3.error;
136
- var dayjsDate = (0, _dayjs["default"])(value, format.toUpperCase(), true);
148
+ var dayjsDate = getValueForPicker(value, format);
137
149
  var invalidDateMessage = value !== "" && !dayjsDate.isValid() && translatedLabels.dateInput.invalidDateErrorMessage;
138
150
  var callbackParams = inputError || invalidDateMessage ? {
139
151
  value: value,
@@ -147,181 +159,44 @@ var DxcDateInput = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref
147
159
  };
148
160
 
149
161
  var openCalendar = function openCalendar() {
150
- var dateBtn = refDate.current.getElementsByTagName("button")[0];
151
162
  setIsOpen(!isOpen);
152
- setAnchorEl(dateBtn);
153
163
  };
154
164
 
155
165
  var closeCalendar = function closeCalendar() {
156
166
  setIsOpen(false);
157
167
  };
158
168
 
159
- var calendarAction = {
160
- onClick: openCalendar,
161
- icon: /*#__PURE__*/_react["default"].createElement("svg", {
162
- xmlns: "http://www.w3.org/2000/svg",
163
- height: "24",
164
- viewBox: "0 0 24 24",
165
- width: "24",
166
- fill: "currentColor"
167
- }, /*#__PURE__*/_react["default"].createElement("path", {
168
- d: "M0 0h24v24H0z",
169
- fill: "none"
170
- }), /*#__PURE__*/_react["default"].createElement("path", {
171
- d: "M20 3h-1V1h-2v2H7V1H5v2H4c-1.1 0-2 .9-2 2v16c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 18H4V8h16v13z"
172
- }))
169
+ var handleDatePickerEscKeydown = function handleDatePickerEscKeydown(event) {
170
+ event.preventDefault();
171
+ closeCalendar();
172
+ dateRef === null || dateRef === void 0 ? void 0 : dateRef.current.getElementsByTagName("input")[0].focus();
173
173
  };
174
- var dateTheme = (0, _core.createMuiTheme)({
175
- overrides: {
176
- MuiTypography: {
177
- root: {
178
- fontFamily: "".concat(colorsTheme.dateInput.pickerFontFamily, " !important")
179
- }
180
- },
181
- MuiPickersYearSelection: {
182
- container: {
183
- color: colorsTheme.dateInput.pickerYearFontColor,
184
- "&::-webkit-scrollbar": {
185
- width: "3px"
186
- },
187
- "&::-webkit-scrollbar-track": {
188
- backgroundColor: "#D9D9D9",
189
- borderRadius: "3px"
190
- },
191
- "&::-webkit-scrollbar-thumb": {
192
- backgroundColor: "#666666",
193
- borderRadius: "3px"
194
- }
195
- }
196
- },
197
- MuiPickersToolbar: {
198
- toolbar: {
199
- backgroundColor: colorsTheme.dateInput.pickerBackgroundColor,
200
- color: colorsTheme.dateInput.pickerDayFontColor
201
- }
202
- },
203
- MuiIconButton: {
204
- root: {
205
- height: "36px",
206
- width: "36px",
207
- padding: "0px"
208
- }
209
- },
210
- MuiTouchRipple: {
211
- child: {
212
- opacity: "0"
213
- }
214
- },
215
- MuiButtonBase: {
216
- root: {
217
- "&:focus": {
218
- outline: colorsTheme.dateInput.pickerFocusColor + " solid 2px"
219
- }
220
- }
221
- },
222
- MuiPickersBasePicker: {
223
- pickerView: {
224
- minWidth: "unset",
225
- maxWidth: "unset",
226
- minHeight: "unset",
227
- padding: "0px 10px",
228
- height: colorsTheme.dateInput.pickerHeight,
229
- width: colorsTheme.dateInput.pickerWidth,
230
- backgroundColor: colorsTheme.dateInput.pickerBackgroundColor,
231
- fontFamily: colorsTheme.dateInput.pickerFontFamily
232
- }
233
- },
234
- MuiPickersToolbarText: {
235
- toolbarTxt: {
236
- color: colorsTheme.dateInput.pickerActualDateFontColor,
237
- fontFamily: colorsTheme.dateInput.pickerFontFamily,
238
- fontSize: "2rem"
239
- },
240
- toolbarBtnSelected: {
241
- color: colorsTheme.dateInput.pickerActualDateFontColor
242
- }
243
- },
244
- MuiPickersCalendarHeader: {
245
- transitionContainer: {
246
- color: colorsTheme.dateInput.pickerMonthFontColor
247
- },
248
- dayLabel: {
249
- color: colorsTheme.dateInput.pickerWeekFontColor,
250
- fontFamily: colorsTheme.dateInput.pickerFontFamily
251
- },
252
- switchHeader: {
253
- backgroundColor: "#ffffff",
254
- color: colorsTheme.dateInput.pickerDayFontColor
255
- },
256
- iconButton: {
257
- backgroundColor: colorsTheme.dateInput.pickerMonthArrowsBackgroundColor,
258
- "&:hover": {
259
- backgroundColor: colorsTheme.dateInput.pickerMonthArrowsBackgroundColor
260
- }
261
- }
262
- },
263
- MuiPickersCalendar: {
264
- week: {
265
- marginBottom: "2px"
266
- }
267
- },
268
- MuiPickersDay: {
269
- current: {
270
- color: colorsTheme.dateInput.pickerDayFontColor
271
- },
272
- day: {
273
- fontFamily: colorsTheme.dateInput.pickerFontFamily,
274
- color: colorsTheme.dateInput.pickerDayFontColor,
275
- "&:hover": {
276
- backgroundColor: colorsTheme.dateInput.pickerHoverDateBackgroundColor,
277
- color: colorsTheme.dateInput.pickerHoverDateFontColor
278
- }
279
- },
280
- daySelected: {
281
- backgroundColor: colorsTheme.dateInput.pickerSelectedDateBackgroundColor,
282
- color: colorsTheme.dateInput.pickerSelectedDateColor,
283
- "&:hover": {
284
- backgroundColor: colorsTheme.dateInput.pickerSelectedDateBackgroundColor,
285
- color: colorsTheme.dateInput.pickerSelectedDateColor,
286
- opacity: "1"
287
- }
288
- }
289
- },
290
- MuiPickersYear: {
291
- yearSelected: {
292
- color: colorsTheme.dateInput.pickerSelectedDateColor,
293
- backgroundColor: colorsTheme.dateInput.pickerSelectedDateBackgroundColor,
294
- margin: "0px 100px",
295
- borderRadius: "20px"
296
- },
297
- root: {
298
- "&:focus": {
299
- color: colorsTheme.dateInput.pickerHoverDateFontColor,
300
- backgroundColor: colorsTheme.dateInput.pickerHoverDateBackgroundColor
301
- }
302
- }
303
- },
304
- MuiPickersModal: {
305
- dialogAction: {
306
- color: "pink"
307
- }
308
- }
309
- }
310
- });
174
+
175
+ var handleDatePickerOnBlur = function handleDatePickerOnBlur(event) {
176
+ if (!(event !== null && event !== void 0 && event.currentTarget.contains(event.relatedTarget))) closeCalendar();
177
+ };
178
+
311
179
  return /*#__PURE__*/_react["default"].createElement(_styledComponents.ThemeProvider, {
312
180
  theme: colorsTheme
313
- }, /*#__PURE__*/_react["default"].createElement(_core.MuiThemeProvider, {
314
- theme: dateTheme
315
- }, /*#__PURE__*/_react["default"].createElement(_pickers.MuiPickersUtilsProvider, {
316
- utils: _dayjs2["default"]
317
- }, /*#__PURE__*/_react["default"].createElement(StyledDPicker, null, /*#__PURE__*/_react["default"].createElement(_TextInput["default"], {
181
+ }, /*#__PURE__*/_react["default"].createElement("div", {
182
+ ref: ref
183
+ }, /*#__PURE__*/_react["default"].createElement(Popover.Root, {
184
+ open: isOpen
185
+ }, /*#__PURE__*/_react["default"].createElement(Popover.Trigger, {
186
+ asChild: true,
187
+ "aria-controls": undefined
188
+ }, /*#__PURE__*/_react["default"].createElement(_TextInput["default"], {
318
189
  label: label,
319
190
  name: name,
320
191
  defaultValue: defaultValue,
321
192
  value: value !== null && value !== void 0 ? value : innerValue,
322
193
  helperText: helperText,
323
194
  placeholder: placeholder ? format.toUpperCase() : null,
324
- action: calendarAction,
195
+ action: {
196
+ onClick: openCalendar,
197
+ icon: calendarIcon,
198
+ title: "Open calendar"
199
+ },
325
200
  clearable: clearable,
326
201
  disabled: disabled,
327
202
  optional: optional,
@@ -332,41 +207,21 @@ var DxcDateInput = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref
332
207
  margin: margin,
333
208
  size: size,
334
209
  tabIndex: tabIndex,
335
- ref: refDate
336
- }), /*#__PURE__*/_react["default"].createElement(_Popover["default"], {
337
- onKeyDown: handleCalendarOnKeyDown,
338
- open: isOpen,
339
- anchorEl: anchorEl,
340
- anchorOrigin: {
341
- vertical: "bottom",
342
- horizontal: "left"
343
- },
344
- transformOrigin: {
345
- vertical: "top",
346
- horizontal: "center"
347
- },
348
- PaperProps: {
349
- style: {
350
- marginTop: "10px"
351
- }
352
- }
353
- }, /*#__PURE__*/_react["default"].createElement(_ClickAwayListener["default"], {
354
- onClickAway: closeCalendar
355
- }, /*#__PURE__*/_react["default"].createElement(_core.Paper, {
356
- role: "dialog",
357
- "aria-modal": "true"
358
- }, /*#__PURE__*/_react["default"].createElement(_pickers.DatePicker, {
359
- variant: "static",
360
- value: getValueForPicker(value !== null && value !== void 0 ? value : innerValue, format),
361
- onChange: function onChange(date) {
362
- return handleCalendarOnClick(date);
363
- },
364
- format: format,
365
- disabled: disabled
366
- }))))))));
210
+ ref: dateRef
211
+ })), /*#__PURE__*/_react["default"].createElement(StyledContent, {
212
+ sideOffset: error ? -18 : 2,
213
+ align: "end",
214
+ "aria-modal": true,
215
+ onBlur: handleDatePickerOnBlur,
216
+ onEscapeKeyDown: handleDatePickerEscKeydown,
217
+ avoidCollisions: false
218
+ }, /*#__PURE__*/_react["default"].createElement(_DatePicker["default"], {
219
+ id: calendarId,
220
+ onDateSelect: handleCalendarOnClick,
221
+ date: getValueForPicker(value !== null && value !== void 0 ? value : innerValue, format.toUpperCase())
222
+ })))));
367
223
  });
368
224
 
369
- var StyledDPicker = _styledComponents["default"].div(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])([""])));
370
-
225
+ var StyledContent = (0, _styledComponents["default"])(Popover.Content)(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n &:focus-visible {\n outline: none;\n }\n"])));
371
226
  var _default = DxcDateInput;
372
227
  exports["default"] = _default;
@@ -19,7 +19,13 @@ export const Chromatic = () => (
19
19
  </ExampleContainer>
20
20
  <ExampleContainer>
21
21
  <Title title="Disabled" theme="light" level={4} />
22
- <DxcDateInput label="Disabled date input" helperText="Help message" defaultValue="06-04-2027" clearable disabled />
22
+ <DxcDateInput
23
+ label="Disabled date input"
24
+ helperText="Help message"
25
+ defaultValue="06-04-2027"
26
+ clearable
27
+ disabled
28
+ />
23
29
  </ExampleContainer>
24
30
  <ExampleContainer>
25
31
  <Title title="Invalid" theme="light" level={4} />
@@ -38,7 +44,13 @@ export const Chromatic = () => (
38
44
  </ExampleContainer>
39
45
  <ExampleContainer>
40
46
  <Title title="Disabled" theme="dark" level={4} />
41
- <DxcDateInput label="Disabled Date input" helperText="Help message" defaultValue="06-04-2027" clearable disabled />
47
+ <DxcDateInput
48
+ label="Disabled Date input"
49
+ helperText="Help message"
50
+ defaultValue="06-04-2027"
51
+ clearable
52
+ disabled
53
+ />
42
54
  </ExampleContainer>
43
55
  <ExampleContainer>
44
56
  <Title title="Invalid" theme="dark" level={4} />
@@ -97,42 +109,43 @@ export const Chromatic = () => (
97
109
 
98
110
  const DatePicker = () => (
99
111
  <ExampleContainer expanded>
100
- <Title title="Show date input" theme="light" level={4} />
101
- <DxcDateInput label="Date input" defaultValue="10-06-2023" />
112
+ <Title title="Show date picker" theme="light" level={4} />
113
+ <DxcDateInput label="Date input" defaultValue="06-04-2027" />
102
114
  </ExampleContainer>
103
115
  );
104
116
 
105
117
  export const ShowDatePicker = DatePicker.bind({});
106
118
  ShowDatePicker.play = async ({ canvasElement }) => {
107
119
  const canvas = within(canvasElement);
108
- const dateBtn = canvas.getByRole("button");
120
+ const dateBtn = canvas.getByRole("combobox");
109
121
  await userEvent.click(dateBtn);
110
- await userEvent.tab();
111
122
  };
112
123
 
113
124
  const YearPicker = () => (
114
125
  <ExampleContainer expanded>
115
- <Title title="Show date input" theme="light" level={4} />
116
- <DxcDateInput label="Date input" defaultValue="10-06-2023" />
126
+ <Title title="Show year picker" theme="light" level={4} />
127
+ <DxcDateInput label="Date input" defaultValue="06-04-2027" />
117
128
  </ExampleContainer>
118
129
  );
119
130
 
120
131
  export const ShowYearPicker = YearPicker.bind({});
121
- ShowYearPicker.play = async () => {
122
- await fireEvent.click(screen.getByRole("button"));
123
- await fireEvent.click(screen.getByText("2023"));
132
+ ShowYearPicker.play = async ({ canvasElement }) => {
133
+ const canvas = within(canvasElement);
134
+ await userEvent.click(canvas.getByRole("combobox"));
135
+ await fireEvent.click(screen.getByText("April 2027"));
124
136
  };
125
137
 
126
138
  const YearPickerFocus = () => (
127
139
  <ExampleContainer expanded>
128
- <Title title="Show date input" theme="light" level={4} />
129
- <DxcDateInput label="Date input" defaultValue="10-06-2023" />
140
+ <Title title="Show year picker and focus" theme="light" level={4} />
141
+ <DxcDateInput label="Date input" defaultValue="06-04-2027" />
130
142
  </ExampleContainer>
131
143
  );
132
144
 
133
145
  export const ShowYearPickerFocus = YearPickerFocus.bind({});
134
- ShowYearPickerFocus.play = async () => {
135
- await fireEvent.click(screen.getByRole("button"));
136
- await fireEvent.click(screen.getByText("2023"));
137
- await screen.getByText("2021").focus();
146
+ ShowYearPickerFocus.play = async ({ canvasElement }) => {
147
+ const canvas = within(canvasElement);
148
+ await userEvent.click(canvas.getByRole("combobox"));
149
+ await fireEvent.click(screen.getByText("April 2027"));
150
+ await userEvent.tab();
138
151
  };