@dxc-technology/halstack-react 7.0.0 → 9.0.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 (109) hide show
  1. package/HalstackContext.js +98 -50
  2. package/accordion/Accordion.js +7 -13
  3. package/accordion/Accordion.stories.tsx +102 -13
  4. package/alert/Alert.stories.tsx +28 -0
  5. package/box/Box.js +1 -3
  6. package/box/Box.stories.tsx +15 -0
  7. package/button/Button.js +11 -13
  8. package/button/Button.stories.tsx +150 -8
  9. package/checkbox/Checkbox.d.ts +2 -2
  10. package/checkbox/Checkbox.js +16 -15
  11. package/checkbox/Checkbox.stories.tsx +131 -59
  12. package/checkbox/types.d.ts +4 -0
  13. package/chip/Chip.js +16 -22
  14. package/chip/Chip.stories.tsx +96 -9
  15. package/common/variables.js +286 -290
  16. package/date-input/Calendar.d.ts +4 -0
  17. package/date-input/Calendar.js +258 -0
  18. package/date-input/DateInput.js +134 -237
  19. package/date-input/DateInput.stories.tsx +199 -33
  20. package/date-input/DateInput.test.js +494 -138
  21. package/date-input/DatePicker.d.ts +4 -0
  22. package/date-input/DatePicker.js +146 -0
  23. package/date-input/Icons.d.ts +6 -0
  24. package/date-input/Icons.js +75 -0
  25. package/date-input/YearPicker.d.ts +4 -0
  26. package/date-input/YearPicker.js +126 -0
  27. package/date-input/types.d.ts +51 -0
  28. package/dialog/Dialog.js +60 -73
  29. package/dialog/Dialog.stories.tsx +211 -159
  30. package/dialog/Dialog.test.js +301 -2
  31. package/dropdown/Dropdown.js +35 -35
  32. package/dropdown/Dropdown.stories.tsx +210 -84
  33. package/dropdown/Dropdown.test.js +17 -22
  34. package/dropdown/DropdownMenu.js +8 -18
  35. package/dropdown/DropdownMenuItem.js +4 -15
  36. package/file-input/FileInput.d.ts +2 -2
  37. package/file-input/FileInput.js +169 -222
  38. package/file-input/FileInput.stories.tsx +122 -11
  39. package/file-input/FileInput.test.js +12 -53
  40. package/file-input/FileItem.d.ts +4 -14
  41. package/file-input/FileItem.js +39 -63
  42. package/file-input/types.d.ts +17 -0
  43. package/footer/Footer.stories.tsx +91 -0
  44. package/header/Header.js +18 -20
  45. package/header/Header.stories.tsx +149 -6
  46. package/link/Link.js +1 -1
  47. package/link/Link.stories.tsx +60 -0
  48. package/main.d.ts +1 -1
  49. package/main.js +1 -1
  50. package/{tabs-nav → nav-tabs}/NavTabs.js +1 -1
  51. package/{tabs-nav → nav-tabs}/NavTabs.stories.tsx +96 -6
  52. package/{tabs-nav → nav-tabs}/Tab.js +35 -15
  53. package/number-input/NumberInput.test.js +5 -6
  54. package/package.json +7 -12
  55. package/paginator/Icons.d.ts +5 -0
  56. package/paginator/Icons.js +16 -28
  57. package/paginator/Paginator.js +5 -11
  58. package/paginator/Paginator.stories.tsx +24 -0
  59. package/paginator/Paginator.test.js +17 -10
  60. package/progress-bar/ProgressBar.js +4 -4
  61. package/progress-bar/ProgressBar.stories.jsx +35 -2
  62. package/quick-nav/QuickNav.stories.tsx +14 -0
  63. package/radio-group/RadioGroup.stories.tsx +131 -18
  64. package/resultsetTable/Icons.d.ts +7 -0
  65. package/resultsetTable/Icons.js +51 -0
  66. package/resultsetTable/ResultsetTable.js +48 -105
  67. package/resultsetTable/ResultsetTable.stories.tsx +50 -25
  68. package/resultsetTable/ResultsetTable.test.js +40 -63
  69. package/resultsetTable/types.d.ts +2 -2
  70. package/select/Listbox.d.ts +1 -1
  71. package/select/Listbox.js +5 -34
  72. package/select/Option.js +11 -24
  73. package/select/Select.js +43 -24
  74. package/select/Select.stories.tsx +494 -150
  75. package/select/Select.test.js +17 -22
  76. package/select/types.d.ts +2 -2
  77. package/sidenav/Sidenav.js +8 -10
  78. package/sidenav/Sidenav.stories.tsx +148 -46
  79. package/slider/Slider.d.ts +2 -2
  80. package/slider/Slider.js +9 -8
  81. package/slider/Slider.stories.tsx +57 -0
  82. package/slider/types.d.ts +4 -0
  83. package/spinner/Spinner.js +2 -2
  84. package/spinner/Spinner.stories.jsx +27 -1
  85. package/switch/Switch.d.ts +3 -3
  86. package/switch/Switch.js +5 -4
  87. package/switch/Switch.stories.tsx +33 -0
  88. package/switch/types.d.ts +6 -1
  89. package/table/Table.stories.jsx +80 -1
  90. package/table/Table.test.js +1 -1
  91. package/tabs/Tab.js +3 -5
  92. package/tabs/Tabs.js +3 -3
  93. package/tabs/Tabs.stories.tsx +45 -5
  94. package/tag/Tag.stories.tsx +14 -1
  95. package/text-input/Suggestion.js +32 -5
  96. package/text-input/TextInput.js +7 -11
  97. package/text-input/TextInput.stories.tsx +92 -4
  98. package/text-input/TextInput.test.js +587 -634
  99. package/textarea/Textarea.stories.jsx +60 -1
  100. package/toggle-group/ToggleGroup.stories.tsx +42 -0
  101. package/utils/FocusLock.d.ts +13 -0
  102. package/utils/FocusLock.js +139 -0
  103. package/wizard/Wizard.stories.tsx +20 -0
  104. package/common/RequiredComponent.js +0 -32
  105. /package/{tabs-nav → nav-tabs}/NavTabs.d.ts +0 -0
  106. /package/{tabs-nav → nav-tabs}/NavTabs.test.js +0 -0
  107. /package/{tabs-nav → nav-tabs}/Tab.d.ts +0 -0
  108. /package/{tabs-nav → nav-tabs}/types.d.ts +0 -0
  109. /package/{tabs-nav → nav-tabs}/types.js +0 -0
@@ -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,16 @@ 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
+
38
+ var _Icons = require("./Icons");
39
+
40
40
  var _templateObject;
41
41
 
42
42
  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,11 +47,35 @@ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (O
47
47
 
48
48
  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
49
 
50
+ _dayjs["default"].extend(_customParseFormat["default"]);
51
+
50
52
  var getValueForPicker = function getValueForPicker(value, format) {
51
- return (0, _dayjs["default"])(value, format.toUpperCase(), true).format();
53
+ return (0, _dayjs["default"])(value, format.toUpperCase(), true);
54
+ };
55
+
56
+ var getDate = function getDate(value, format, lastValidYear, setLastValidYear) {
57
+ if ((value || value === "") && format.toUpperCase().includes("YYYY")) return getValueForPicker(value, format);else {
58
+ var newDate = getValueForPicker(value, format);
59
+
60
+ if (!lastValidYear) {
61
+ if (+newDate.format("YY") < 68) {
62
+ setLastValidYear(2000 + +newDate.format("YY"));
63
+ newDate = newDate.set("year", 2000 + +newDate.format("YY"));
64
+ } else {
65
+ setLastValidYear(1900 + +newDate.format("YY"));
66
+ newDate = newDate.set("year", 1900 + +newDate.format("YY"));
67
+ }
68
+ } else {
69
+ newDate = newDate.set("year", (lastValidYear <= 1999 ? 1900 : 2000) + +newDate.format("YY"));
70
+ }
71
+
72
+ return newDate;
73
+ }
52
74
  };
53
75
 
54
76
  var DxcDateInput = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref) {
77
+ var _ref2;
78
+
55
79
  var label = _ref.label,
56
80
  name = _ref.name,
57
81
  _ref$defaultValue = _ref.defaultValue,
@@ -83,245 +107,138 @@ var DxcDateInput = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref
83
107
  isOpen = _useState4[0],
84
108
  setIsOpen = _useState4[1];
85
109
 
86
- var _useState5 = (0, _react.useState)(null),
87
- _useState6 = (0, _slicedToArray2["default"])(_useState5, 2),
88
- anchorEl = _useState6[0],
89
- setAnchorEl = _useState6[1];
110
+ var _useState5 = (0, _react.useState)("date-picker-".concat((0, _uuid.v4)())),
111
+ _useState6 = (0, _slicedToArray2["default"])(_useState5, 1),
112
+ calendarId = _useState6[0];
113
+
114
+ var _useState7 = (0, _react.useState)(getValueForPicker((_ref2 = value !== null && value !== void 0 ? value : defaultValue) !== null && _ref2 !== void 0 ? _ref2 : "", format)),
115
+ _useState8 = (0, _slicedToArray2["default"])(_useState7, 2),
116
+ dayjsDate = _useState8[0],
117
+ setDayjsDate = _useState8[1];
118
+
119
+ var _useState9 = (0, _react.useState)(innerValue || value ? !format.toUpperCase().includes("YYYY") && +getValueForPicker(value !== null && value !== void 0 ? value : innerValue, format).format("YY") < 68 ? 2000 : 1900 : undefined),
120
+ _useState10 = (0, _slicedToArray2["default"])(_useState9, 2),
121
+ lastValidYear = _useState10[0],
122
+ setLastValidYear = _useState10[1];
90
123
 
91
124
  var colorsTheme = (0, _useTheme["default"])();
92
125
  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;
126
+ var dateRef = (0, _react.useRef)(null);
127
+ (0, _react.useEffect)(function () {
128
+ if (value || value === "") setDayjsDate(getDate(value, format, lastValidYear, setLastValidYear));
129
+ }, [value, format, lastValidYear]);
130
+ (0, _react.useLayoutEffect)(function () {
131
+ if (!disabled) {
132
+ var actionButtonRef = dateRef === null || dateRef === void 0 ? void 0 : dateRef.current.querySelector("[title='Open calendar']");
133
+ actionButtonRef === null || actionButtonRef === void 0 ? void 0 : actionButtonRef.setAttribute("aria-haspopup", true);
134
+ actionButtonRef === null || actionButtonRef === void 0 ? void 0 : actionButtonRef.setAttribute("role", "combobox");
135
+ actionButtonRef === null || actionButtonRef === void 0 ? void 0 : actionButtonRef.setAttribute("aria-expanded", isOpen);
136
+ actionButtonRef === null || actionButtonRef === void 0 ? void 0 : actionButtonRef.setAttribute("aria-controls", calendarId);
137
+ actionButtonRef === null || actionButtonRef === void 0 ? void 0 : actionButtonRef.setAttribute("aria-describedby", calendarId);
102
138
  }
103
- };
139
+ }, [isOpen, disabled, calendarId]);
104
140
 
105
141
  var handleCalendarOnClick = function handleCalendarOnClick(newDate) {
106
- var newValue = (0, _dayjs["default"])(newDate).format(format.toUpperCase());
107
- value !== null && value !== void 0 ? value : setInnerValue(newValue);
108
- newDate !== null && newDate !== void 0 && newDate.toJSON() ? onChange === null || onChange === void 0 ? void 0 : onChange({
142
+ var newValue = newDate.format(format.toUpperCase());
143
+
144
+ if (!value) {
145
+ setDayjsDate(newDate);
146
+ setInnerValue(newValue);
147
+ }
148
+
149
+ setLastValidYear(newDate.get("year"));
150
+ newDate !== null && newDate !== void 0 && newDate.set("day", newDate.get("date")).toJSON() ? onChange === null || onChange === void 0 ? void 0 : onChange({
109
151
  value: newValue,
110
- date: newDate
152
+ date: newDate.toDate()
111
153
  }) : onChange === null || onChange === void 0 ? void 0 : onChange({
112
154
  value: newValue
113
155
  });
114
156
  };
115
157
 
116
- var handleIOnChange = function handleIOnChange(_ref2) {
117
- var newValue = _ref2.value,
118
- inputError = _ref2.error;
158
+ var handleIOnChange = function handleIOnChange(_ref3) {
159
+ var newValue = _ref3.value,
160
+ inputError = _ref3.error;
119
161
  value !== null && value !== void 0 ? value : setInnerValue(newValue);
120
- var dayjsDate = (0, _dayjs["default"])(newValue, format.toUpperCase(), true);
121
- var invalidDateMessage = newValue !== "" && !dayjsDate.isValid() && translatedLabels.dateInput.invalidDateErrorMessage;
162
+ var newDate = getDate(newValue, format, lastValidYear, setLastValidYear);
163
+ var invalidDateMessage = newValue !== "" && !newDate.isValid() && translatedLabels.dateInput.invalidDateErrorMessage;
122
164
  var callbackParams = inputError || invalidDateMessage ? {
123
165
  value: newValue,
124
166
  error: inputError || invalidDateMessage
125
167
  } : {
126
168
  value: newValue
127
169
  };
128
- dayjsDate.isValid() ? onChange === null || onChange === void 0 ? void 0 : onChange(_objectSpread(_objectSpread({}, callbackParams), {}, {
129
- date: dayjsDate.toDate()
130
- })) : onChange === null || onChange === void 0 ? void 0 : onChange(callbackParams);
170
+
171
+ if (newDate.isValid()) {
172
+ setDayjsDate(newDate);
173
+ onChange === null || onChange === void 0 ? void 0 : onChange(_objectSpread(_objectSpread({}, callbackParams), {}, {
174
+ date: newDate.toDate()
175
+ }));
176
+ } else {
177
+ onChange === null || onChange === void 0 ? void 0 : onChange(callbackParams);
178
+ setLastValidYear(function (validYear) {
179
+ var _dayjsDate$get;
180
+
181
+ return (_dayjsDate$get = dayjsDate === null || dayjsDate === void 0 ? void 0 : dayjsDate.get("year")) !== null && _dayjsDate$get !== void 0 ? _dayjsDate$get : validYear;
182
+ });
183
+ setDayjsDate(null);
184
+ }
131
185
  };
132
186
 
133
- var handleIOnBlur = function handleIOnBlur(_ref3) {
134
- var value = _ref3.value,
135
- inputError = _ref3.error;
136
- var dayjsDate = (0, _dayjs["default"])(value, format.toUpperCase(), true);
137
- var invalidDateMessage = value !== "" && !dayjsDate.isValid() && translatedLabels.dateInput.invalidDateErrorMessage;
187
+ var handleIOnBlur = function handleIOnBlur(_ref4) {
188
+ var value = _ref4.value,
189
+ inputError = _ref4.error;
190
+ var date = getDate(value, format, lastValidYear, setLastValidYear);
191
+ var invalidDateMessage = value !== "" && !date.isValid() && translatedLabels.dateInput.invalidDateErrorMessage;
138
192
  var callbackParams = inputError || invalidDateMessage ? {
139
193
  value: value,
140
194
  error: inputError || invalidDateMessage
141
195
  } : {
142
196
  value: value
143
197
  };
144
- dayjsDate.isValid() ? onBlur === null || onBlur === void 0 ? void 0 : onBlur(_objectSpread(_objectSpread({}, callbackParams), {}, {
145
- date: dayjsDate.toDate()
198
+ date.isValid() ? onBlur === null || onBlur === void 0 ? void 0 : onBlur(_objectSpread(_objectSpread({}, callbackParams), {}, {
199
+ date: date.toDate()
146
200
  })) : onBlur === null || onBlur === void 0 ? void 0 : onBlur(callbackParams);
147
201
  };
148
202
 
149
203
  var openCalendar = function openCalendar() {
150
- var dateBtn = refDate.current.getElementsByTagName("button")[0];
151
204
  setIsOpen(!isOpen);
152
- setAnchorEl(dateBtn);
153
205
  };
154
206
 
155
207
  var closeCalendar = function closeCalendar() {
156
208
  setIsOpen(false);
157
209
  };
158
210
 
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
- }))
211
+ var handleDatePickerEscKeydown = function handleDatePickerEscKeydown(event) {
212
+ event.preventDefault();
213
+ closeCalendar();
214
+ dateRef === null || dateRef === void 0 ? void 0 : dateRef.current.getElementsByTagName("input")[0].focus();
173
215
  };
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
- });
216
+
217
+ var handleDatePickerOnBlur = function handleDatePickerOnBlur(event) {
218
+ if (!(event !== null && event !== void 0 && event.currentTarget.contains(event.relatedTarget))) closeCalendar();
219
+ };
220
+
311
221
  return /*#__PURE__*/_react["default"].createElement(_styledComponents.ThemeProvider, {
312
222
  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"], {
223
+ }, /*#__PURE__*/_react["default"].createElement("div", {
224
+ ref: ref
225
+ }, /*#__PURE__*/_react["default"].createElement(Popover.Root, {
226
+ open: isOpen
227
+ }, /*#__PURE__*/_react["default"].createElement(Popover.Trigger, {
228
+ asChild: true,
229
+ "aria-controls": undefined
230
+ }, /*#__PURE__*/_react["default"].createElement(_TextInput["default"], {
318
231
  label: label,
319
232
  name: name,
320
233
  defaultValue: defaultValue,
321
234
  value: value !== null && value !== void 0 ? value : innerValue,
322
235
  helperText: helperText,
323
236
  placeholder: placeholder ? format.toUpperCase() : null,
324
- action: calendarAction,
237
+ action: {
238
+ onClick: openCalendar,
239
+ icon: _Icons.calendarIcon,
240
+ title: "Open calendar"
241
+ },
325
242
  clearable: clearable,
326
243
  disabled: disabled,
327
244
  optional: optional,
@@ -332,41 +249,21 @@ var DxcDateInput = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref
332
249
  margin: margin,
333
250
  size: size,
334
251
  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
- }))))))));
252
+ ref: dateRef
253
+ })), /*#__PURE__*/_react["default"].createElement(StyledContent, {
254
+ sideOffset: error ? -18 : 2,
255
+ align: "end",
256
+ "aria-modal": true,
257
+ onBlur: handleDatePickerOnBlur,
258
+ onEscapeKeyDown: handleDatePickerEscKeydown,
259
+ avoidCollisions: false
260
+ }, /*#__PURE__*/_react["default"].createElement(_DatePicker["default"], {
261
+ id: calendarId,
262
+ onDateSelect: handleCalendarOnClick,
263
+ date: dayjsDate
264
+ })))));
367
265
  });
368
266
 
369
- var StyledDPicker = _styledComponents["default"].div(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])([""])));
370
-
267
+ var StyledContent = (0, _styledComponents["default"])(Popover.Content)(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n &:focus-visible {\n outline: none;\n }\n"])));
371
268
  var _default = DxcDateInput;
372
269
  exports["default"] = _default;