@dxc-technology/halstack-react 0.0.0-d30020b → 0.0.0-d3ac293

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 (290) hide show
  1. package/BackgroundColorContext.d.ts +2 -2
  2. package/BackgroundColorContext.js +1 -1
  3. package/HalstackContext.d.ts +1336 -0
  4. package/HalstackContext.js +335 -0
  5. package/accordion/Accordion.d.ts +1 -1
  6. package/accordion/Accordion.js +118 -126
  7. package/accordion/Accordion.stories.tsx +115 -27
  8. package/accordion/Accordion.test.js +71 -0
  9. package/accordion/types.d.ts +9 -4
  10. package/accordion-group/AccordionGroup.d.ts +1 -1
  11. package/accordion-group/AccordionGroup.js +17 -38
  12. package/accordion-group/AccordionGroup.stories.tsx +28 -2
  13. package/accordion-group/AccordionGroup.test.js +126 -0
  14. package/accordion-group/types.d.ts +14 -3
  15. package/alert/Alert.js +7 -4
  16. package/alert/Alert.stories.tsx +28 -0
  17. package/alert/Alert.test.js +92 -0
  18. package/badge/Badge.d.ts +4 -0
  19. package/badge/Badge.js +5 -3
  20. package/badge/types.d.ts +5 -0
  21. package/bleed/Bleed.js +1 -34
  22. package/bleed/Bleed.stories.tsx +94 -95
  23. package/bleed/types.d.ts +25 -1
  24. package/box/Box.js +25 -37
  25. package/box/Box.stories.tsx +15 -0
  26. package/box/Box.test.js +18 -0
  27. package/box/types.d.ts +1 -0
  28. package/bulleted-list/BulletedList.d.ts +7 -0
  29. package/bulleted-list/BulletedList.js +123 -0
  30. package/bulleted-list/BulletedList.stories.tsx +200 -0
  31. package/bulleted-list/types.d.ts +11 -0
  32. package/button/Button.js +52 -69
  33. package/button/Button.stories.tsx +159 -8
  34. package/button/Button.test.js +35 -0
  35. package/button/types.d.ts +7 -7
  36. package/card/Card.js +25 -28
  37. package/card/Card.test.js +50 -0
  38. package/card/types.d.ts +1 -0
  39. package/checkbox/Checkbox.d.ts +2 -2
  40. package/checkbox/Checkbox.js +107 -110
  41. package/checkbox/Checkbox.stories.tsx +198 -130
  42. package/checkbox/Checkbox.test.js +155 -0
  43. package/checkbox/types.d.ts +13 -5
  44. package/chip/Chip.js +18 -24
  45. package/chip/Chip.stories.tsx +96 -9
  46. package/chip/Chip.test.js +54 -0
  47. package/chip/types.d.ts +1 -1
  48. package/common/utils.d.ts +1 -0
  49. package/common/utils.js +4 -4
  50. package/common/variables.d.ts +1625 -0
  51. package/common/variables.js +476 -583
  52. package/date-input/Calendar.d.ts +4 -0
  53. package/date-input/Calendar.js +258 -0
  54. package/date-input/DateInput.js +169 -258
  55. package/date-input/DateInput.stories.tsx +199 -33
  56. package/date-input/DateInput.test.js +835 -0
  57. package/date-input/DatePicker.d.ts +4 -0
  58. package/date-input/DatePicker.js +146 -0
  59. package/date-input/Icons.d.ts +6 -0
  60. package/date-input/Icons.js +75 -0
  61. package/date-input/YearPicker.d.ts +4 -0
  62. package/date-input/YearPicker.js +126 -0
  63. package/date-input/types.d.ts +67 -9
  64. package/dialog/Dialog.js +76 -93
  65. package/dialog/Dialog.stories.tsx +230 -123
  66. package/dialog/Dialog.test.js +369 -0
  67. package/dialog/types.d.ts +3 -2
  68. package/dropdown/Dropdown.d.ts +1 -1
  69. package/dropdown/Dropdown.js +246 -253
  70. package/dropdown/Dropdown.stories.tsx +245 -56
  71. package/dropdown/Dropdown.test.js +586 -0
  72. package/dropdown/DropdownMenu.d.ts +4 -0
  73. package/dropdown/DropdownMenu.js +70 -0
  74. package/dropdown/DropdownMenuItem.d.ts +4 -0
  75. package/dropdown/DropdownMenuItem.js +81 -0
  76. package/dropdown/types.d.ts +25 -5
  77. package/file-input/FileInput.d.ts +2 -2
  78. package/file-input/FileInput.js +181 -223
  79. package/file-input/FileInput.stories.tsx +122 -11
  80. package/file-input/FileInput.test.js +457 -0
  81. package/file-input/FileItem.d.ts +4 -14
  82. package/file-input/FileItem.js +44 -66
  83. package/file-input/types.d.ts +17 -0
  84. package/flex/Flex.d.ts +4 -0
  85. package/flex/Flex.js +69 -0
  86. package/flex/Flex.stories.tsx +103 -0
  87. package/flex/types.d.ts +32 -0
  88. package/footer/Footer.js +16 -89
  89. package/footer/Footer.stories.tsx +99 -1
  90. package/footer/Footer.test.js +97 -0
  91. package/footer/Icons.js +1 -1
  92. package/footer/types.d.ts +2 -1
  93. package/header/Header.js +108 -129
  94. package/header/Header.stories.tsx +189 -36
  95. package/header/Header.test.js +79 -0
  96. package/header/Icons.js +2 -2
  97. package/header/types.d.ts +3 -2
  98. package/heading/Heading.js +1 -1
  99. package/heading/Heading.test.js +186 -0
  100. package/inset/Inset.js +1 -34
  101. package/inset/Inset.stories.tsx +36 -36
  102. package/inset/types.d.ts +25 -1
  103. package/layout/ApplicationLayout.d.ts +16 -6
  104. package/layout/ApplicationLayout.js +72 -132
  105. package/layout/ApplicationLayout.stories.tsx +84 -93
  106. package/layout/Icons.d.ts +5 -0
  107. package/layout/Icons.js +13 -2
  108. package/layout/SidenavContext.d.ts +5 -0
  109. package/layout/SidenavContext.js +19 -0
  110. package/layout/types.d.ts +18 -33
  111. package/link/Link.d.ts +3 -2
  112. package/link/Link.js +59 -76
  113. package/link/Link.stories.tsx +155 -53
  114. package/link/Link.test.js +81 -0
  115. package/link/types.d.ts +7 -23
  116. package/main.d.ts +10 -15
  117. package/main.js +48 -82
  118. package/nav-tabs/NavTabs.d.ts +8 -0
  119. package/nav-tabs/NavTabs.js +125 -0
  120. package/nav-tabs/NavTabs.stories.tsx +260 -0
  121. package/nav-tabs/NavTabs.test.js +82 -0
  122. package/nav-tabs/Tab.d.ts +4 -0
  123. package/nav-tabs/Tab.js +150 -0
  124. package/nav-tabs/types.d.ts +53 -0
  125. package/number-input/NumberInput.js +11 -18
  126. package/number-input/NumberInput.stories.tsx +5 -5
  127. package/number-input/NumberInput.test.js +542 -0
  128. package/number-input/types.d.ts +17 -10
  129. package/package.json +20 -23
  130. package/paginator/Icons.d.ts +5 -0
  131. package/paginator/Icons.js +16 -28
  132. package/paginator/Paginator.js +19 -46
  133. package/paginator/Paginator.stories.tsx +24 -0
  134. package/paginator/Paginator.test.js +305 -0
  135. package/paragraph/Paragraph.d.ts +6 -0
  136. package/paragraph/Paragraph.js +38 -0
  137. package/paragraph/Paragraph.stories.tsx +44 -0
  138. package/password-input/PasswordInput.js +7 -4
  139. package/password-input/PasswordInput.test.js +181 -0
  140. package/password-input/types.d.ts +14 -11
  141. package/progress-bar/ProgressBar.d.ts +2 -2
  142. package/progress-bar/ProgressBar.js +61 -55
  143. package/progress-bar/ProgressBar.stories.jsx +47 -12
  144. package/progress-bar/ProgressBar.test.js +110 -0
  145. package/progress-bar/types.d.ts +3 -4
  146. package/quick-nav/QuickNav.d.ts +4 -0
  147. package/quick-nav/QuickNav.js +117 -0
  148. package/quick-nav/QuickNav.stories.tsx +356 -0
  149. package/quick-nav/types.d.ts +21 -0
  150. package/quick-nav/types.js +5 -0
  151. package/radio-group/Radio.d.ts +1 -1
  152. package/radio-group/Radio.js +53 -37
  153. package/radio-group/RadioGroup.js +67 -57
  154. package/radio-group/RadioGroup.stories.tsx +171 -36
  155. package/radio-group/RadioGroup.test.js +563 -89
  156. package/radio-group/types.d.ts +82 -4
  157. package/resultsetTable/Icons.d.ts +7 -0
  158. package/resultsetTable/Icons.js +51 -0
  159. package/resultsetTable/ResultsetTable.js +49 -108
  160. package/resultsetTable/ResultsetTable.stories.tsx +50 -25
  161. package/resultsetTable/ResultsetTable.test.js +325 -0
  162. package/resultsetTable/types.d.ts +2 -2
  163. package/select/Icons.d.ts +10 -0
  164. package/select/Icons.js +93 -0
  165. package/select/Listbox.d.ts +4 -0
  166. package/select/Listbox.js +169 -0
  167. package/select/Option.d.ts +4 -0
  168. package/select/Option.js +97 -0
  169. package/select/Select.js +185 -384
  170. package/select/Select.stories.tsx +600 -201
  171. package/select/Select.test.js +2228 -0
  172. package/select/types.d.ts +53 -13
  173. package/sidenav/Sidenav.d.ts +6 -5
  174. package/sidenav/Sidenav.js +183 -53
  175. package/sidenav/Sidenav.stories.tsx +249 -149
  176. package/sidenav/Sidenav.test.js +44 -0
  177. package/sidenav/types.d.ts +50 -27
  178. package/slider/Slider.d.ts +2 -2
  179. package/slider/Slider.js +124 -98
  180. package/slider/Slider.stories.tsx +72 -9
  181. package/slider/Slider.test.js +250 -0
  182. package/slider/types.d.ts +10 -2
  183. package/spinner/Spinner.js +4 -4
  184. package/spinner/Spinner.stories.jsx +27 -1
  185. package/spinner/Spinner.test.js +64 -0
  186. package/switch/Switch.d.ts +2 -2
  187. package/switch/Switch.js +152 -69
  188. package/switch/Switch.stories.tsx +53 -42
  189. package/switch/Switch.test.js +225 -0
  190. package/switch/types.d.ts +12 -4
  191. package/table/Table.js +3 -3
  192. package/table/Table.stories.jsx +80 -1
  193. package/table/Table.test.js +26 -0
  194. package/tabs/Tab.d.ts +4 -0
  195. package/tabs/Tab.js +133 -0
  196. package/tabs/Tabs.d.ts +1 -1
  197. package/tabs/Tabs.js +363 -109
  198. package/tabs/Tabs.stories.tsx +119 -13
  199. package/tabs/Tabs.test.js +350 -0
  200. package/tabs/types.d.ts +19 -5
  201. package/tag/Tag.js +17 -22
  202. package/tag/Tag.stories.tsx +25 -8
  203. package/tag/Tag.test.js +60 -0
  204. package/tag/types.d.ts +1 -1
  205. package/text-input/Icons.d.ts +8 -0
  206. package/text-input/Icons.js +60 -0
  207. package/text-input/Suggestion.d.ts +4 -0
  208. package/text-input/Suggestion.js +84 -0
  209. package/text-input/Suggestions.d.ts +4 -0
  210. package/text-input/Suggestions.js +134 -0
  211. package/text-input/TextInput.js +224 -345
  212. package/text-input/TextInput.stories.tsx +310 -197
  213. package/text-input/TextInput.test.js +1723 -0
  214. package/text-input/types.d.ts +50 -12
  215. package/textarea/Textarea.js +22 -29
  216. package/textarea/Textarea.stories.jsx +93 -13
  217. package/textarea/Textarea.test.js +437 -0
  218. package/textarea/types.d.ts +18 -11
  219. package/toggle-group/ToggleGroup.d.ts +1 -1
  220. package/toggle-group/ToggleGroup.js +6 -5
  221. package/toggle-group/ToggleGroup.stories.tsx +46 -4
  222. package/toggle-group/ToggleGroup.test.js +156 -0
  223. package/toggle-group/types.d.ts +9 -1
  224. package/typography/Typography.d.ts +4 -0
  225. package/typography/Typography.js +32 -0
  226. package/typography/Typography.stories.tsx +198 -0
  227. package/typography/types.d.ts +18 -0
  228. package/typography/types.js +5 -0
  229. package/useTheme.d.ts +1234 -1
  230. package/useTheme.js +3 -3
  231. package/useTranslatedLabels.d.ts +85 -0
  232. package/useTranslatedLabels.js +20 -0
  233. package/utils/BaseTypography.d.ts +21 -0
  234. package/utils/BaseTypography.js +108 -0
  235. package/utils/FocusLock.d.ts +13 -0
  236. package/utils/FocusLock.js +139 -0
  237. package/wizard/Wizard.d.ts +1 -1
  238. package/wizard/Wizard.js +59 -55
  239. package/wizard/Wizard.stories.tsx +48 -19
  240. package/wizard/Wizard.test.js +141 -0
  241. package/wizard/types.d.ts +10 -5
  242. package/ThemeContext.d.ts +0 -15
  243. package/ThemeContext.js +0 -243
  244. package/V3Select/V3Select.js +0 -455
  245. package/V3Select/index.d.ts +0 -27
  246. package/V3Textarea/V3Textarea.js +0 -260
  247. package/V3Textarea/index.d.ts +0 -27
  248. package/common/RequiredComponent.js +0 -32
  249. package/date/Date.js +0 -373
  250. package/date/index.d.ts +0 -27
  251. package/input-text/Icons.js +0 -22
  252. package/input-text/InputText.js +0 -611
  253. package/input-text/index.d.ts +0 -36
  254. package/list/List.d.ts +0 -4
  255. package/list/List.js +0 -47
  256. package/list/List.stories.tsx +0 -95
  257. package/list/types.d.ts +0 -7
  258. package/radio/Radio.d.ts +0 -4
  259. package/radio/Radio.js +0 -174
  260. package/radio/Radio.stories.tsx +0 -192
  261. package/radio/types.d.ts +0 -54
  262. package/row/Row.d.ts +0 -3
  263. package/row/Row.js +0 -127
  264. package/row/Row.stories.tsx +0 -237
  265. package/row/types.d.ts +0 -10
  266. package/stack/Stack.d.ts +0 -3
  267. package/stack/Stack.js +0 -97
  268. package/stack/Stack.stories.tsx +0 -164
  269. package/stack/types.d.ts +0 -9
  270. package/text/Text.d.ts +0 -7
  271. package/text/Text.js +0 -30
  272. package/text/Text.stories.tsx +0 -19
  273. package/toggle/Toggle.js +0 -186
  274. package/toggle/index.d.ts +0 -21
  275. package/upload/Upload.js +0 -201
  276. package/upload/buttons-upload/ButtonsUpload.js +0 -111
  277. package/upload/buttons-upload/Icons.js +0 -40
  278. package/upload/dragAndDropArea/DragAndDropArea.js +0 -225
  279. package/upload/dragAndDropArea/Icons.js +0 -39
  280. package/upload/file-upload/FileToUpload.js +0 -115
  281. package/upload/file-upload/Icons.js +0 -66
  282. package/upload/files-upload/FilesToUpload.js +0 -109
  283. package/upload/index.d.ts +0 -15
  284. package/upload/transaction/Icons.js +0 -160
  285. package/upload/transaction/Transaction.js +0 -104
  286. package/upload/transactions/Transactions.js +0 -94
  287. /package/{list → badge}/types.js +0 -0
  288. /package/{radio → bulleted-list}/types.js +0 -0
  289. /package/{row → flex}/types.js +0 -0
  290. /package/{stack → nav-tabs}/types.js +0 -0
@@ -11,27 +11,31 @@ exports["default"] = void 0;
11
11
 
12
12
  var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
13
13
 
14
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
15
+
14
16
  var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
15
17
 
16
18
  var _react = _interopRequireWildcard(require("react"));
17
19
 
18
- var _pickers = require("@material-ui/pickers");
20
+ var _dayjs = _interopRequireDefault(require("dayjs"));
19
21
 
20
- var _core = require("@material-ui/core");
22
+ var _styledComponents = _interopRequireWildcard(require("styled-components"));
21
23
 
22
- var _ClickAwayListener = _interopRequireDefault(require("@material-ui/core/ClickAwayListener"));
24
+ var _useTheme = _interopRequireDefault(require("../useTheme"));
23
25
 
24
- var _Popover = _interopRequireDefault(require("@material-ui/core/Popover"));
26
+ var _useTranslatedLabels = _interopRequireDefault(require("../useTranslatedLabels"));
25
27
 
26
- var _moment = _interopRequireDefault(require("moment"));
28
+ var _TextInput = _interopRequireDefault(require("../text-input/TextInput"));
27
29
 
28
- var _dateFns = _interopRequireDefault(require("@date-io/date-fns"));
30
+ var _DatePicker = _interopRequireDefault(require("./DatePicker"));
29
31
 
30
- var _styledComponents = _interopRequireWildcard(require("styled-components"));
32
+ var Popover = _interopRequireWildcard(require("@radix-ui/react-popover"));
31
33
 
32
- var _useTheme = _interopRequireDefault(require("../useTheme"));
34
+ var _customParseFormat = _interopRequireDefault(require("dayjs/plugin/customParseFormat"));
33
35
 
34
- var _TextInput = _interopRequireDefault(require("../text-input/TextInput"));
36
+ var _uuid = require("uuid");
37
+
38
+ var _Icons = require("./Icons");
35
39
 
36
40
  var _templateObject;
37
41
 
@@ -39,34 +43,61 @@ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "functio
39
43
 
40
44
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
41
45
 
46
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
47
+
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
+
50
+ _dayjs["default"].extend(_customParseFormat["default"]);
51
+
52
+ var getValueForPicker = function getValueForPicker(value, 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
+ }
74
+ };
75
+
42
76
  var DxcDateInput = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref) {
77
+ var _ref2;
78
+
43
79
  var label = _ref.label,
44
- _ref$name = _ref.name,
45
- name = _ref$name === void 0 ? "" : _ref$name,
80
+ name = _ref.name,
81
+ _ref$defaultValue = _ref.defaultValue,
82
+ defaultValue = _ref$defaultValue === void 0 ? "" : _ref$defaultValue,
46
83
  value = _ref.value,
47
84
  _ref$format = _ref.format,
48
85
  format = _ref$format === void 0 ? "dd-MM-yyyy" : _ref$format,
49
86
  helperText = _ref.helperText,
50
87
  _ref$placeholder = _ref.placeholder,
51
88
  placeholder = _ref$placeholder === void 0 ? false : _ref$placeholder,
52
- _ref$clearable = _ref.clearable,
53
- clearable = _ref$clearable === void 0 ? false : _ref$clearable,
54
- _ref$disabled = _ref.disabled,
55
- disabled = _ref$disabled === void 0 ? false : _ref$disabled,
56
- _ref$optional = _ref.optional,
57
- optional = _ref$optional === void 0 ? false : _ref$optional,
89
+ clearable = _ref.clearable,
90
+ disabled = _ref.disabled,
91
+ optional = _ref.optional,
58
92
  onChange = _ref.onChange,
59
93
  onBlur = _ref.onBlur,
60
94
  error = _ref.error,
61
- _ref$autocomplete = _ref.autocomplete,
62
- autocomplete = _ref$autocomplete === void 0 ? "off" : _ref$autocomplete,
95
+ autocomplete = _ref.autocomplete,
63
96
  margin = _ref.margin,
64
- _ref$size = _ref.size,
65
- size = _ref$size === void 0 ? "medium" : _ref$size,
66
- _ref$tabIndex = _ref.tabIndex,
67
- tabIndex = _ref$tabIndex === void 0 ? 0 : _ref$tabIndex;
97
+ size = _ref.size,
98
+ tabIndex = _ref.tabIndex;
68
99
 
69
- var _useState = (0, _react.useState)(""),
100
+ var _useState = (0, _react.useState)(defaultValue),
70
101
  _useState2 = (0, _slicedToArray2["default"])(_useState, 2),
71
102
  innerValue = _useState2[0],
72
103
  setInnerValue = _useState2[1];
@@ -76,238 +107,138 @@ var DxcDateInput = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref
76
107
  isOpen = _useState4[0],
77
108
  setIsOpen = _useState4[1];
78
109
 
79
- var _useState5 = (0, _react.useState)(null),
80
- _useState6 = (0, _slicedToArray2["default"])(_useState5, 2),
81
- anchorEl = _useState6[0],
82
- 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];
83
123
 
84
124
  var colorsTheme = (0, _useTheme["default"])();
85
- var refDate = ref || (0, _react.useRef)(null);
86
-
87
- var handleCalendarOnKeyDown = function handleCalendarOnKeyDown(event) {
88
- switch (event.keyCode) {
89
- case 27:
90
- // Esc
91
- event.preventDefault();
92
- setIsOpen(false);
93
- break;
125
+ var translatedLabels = (0, _useTranslatedLabels["default"])();
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);
94
138
  }
95
- };
139
+ }, [isOpen, disabled, calendarId]);
96
140
 
97
141
  var handleCalendarOnClick = function handleCalendarOnClick(newDate) {
98
- var newValue = (0, _moment["default"])(newDate).format(format.toUpperCase());
99
- value !== null && value !== void 0 ? value : setInnerValue(newValue);
100
- 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({
101
151
  value: newValue,
102
- error: null,
103
- date: newDate !== null && newDate !== void 0 && newDate.toJSON() ? newDate : null
152
+ date: newDate.toDate()
153
+ }) : onChange === null || onChange === void 0 ? void 0 : onChange({
154
+ value: newValue
104
155
  });
105
156
  };
106
157
 
107
- var handleIOnChange = function handleIOnChange(_ref2) {
108
- var newValue = _ref2.value,
109
- inputError = _ref2.error;
158
+ var handleIOnChange = function handleIOnChange(_ref3) {
159
+ var newValue = _ref3.value,
160
+ inputError = _ref3.error;
110
161
  value !== null && value !== void 0 ? value : setInnerValue(newValue);
111
- var momentDate = (0, _moment["default"])(newValue, format.toUpperCase(), true);
112
- var invalidDateMessage = newValue !== "" && !momentDate.isValid() ? "Invalid date." : null;
113
- onChange === null || onChange === void 0 ? void 0 : onChange({
162
+ var newDate = getDate(newValue, format, lastValidYear, setLastValidYear);
163
+ var invalidDateMessage = newValue !== "" && !newDate.isValid() && translatedLabels.dateInput.invalidDateErrorMessage;
164
+ var callbackParams = inputError || invalidDateMessage ? {
114
165
  value: newValue,
115
- error: inputError || invalidDateMessage,
116
- date: momentDate.isValid() ? momentDate.toDate() : null
117
- });
166
+ error: inputError || invalidDateMessage
167
+ } : {
168
+ value: newValue
169
+ };
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
+ }
118
185
  };
119
186
 
120
- var handleIOnBlur = function handleIOnBlur(_ref3) {
121
- var value = _ref3.value,
122
- inputError = _ref3.error;
123
- var momentDate = (0, _moment["default"])(value, format.toUpperCase(), true);
124
- var invalidDateMessage = value !== "" && !momentDate.isValid() ? "Invalid date." : null;
125
- onBlur === null || onBlur === void 0 ? void 0 : onBlur({
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;
192
+ var callbackParams = inputError || invalidDateMessage ? {
126
193
  value: value,
127
- error: inputError || invalidDateMessage,
128
- date: momentDate.isValid() ? momentDate.toDate() : null
129
- });
130
- };
131
-
132
- var getValueForPicker = function getValueForPicker() {
133
- return (0, _moment["default"])(value !== null && value !== void 0 ? value : innerValue, format.toUpperCase(), true).format();
194
+ error: inputError || invalidDateMessage
195
+ } : {
196
+ value: value
197
+ };
198
+ date.isValid() ? onBlur === null || onBlur === void 0 ? void 0 : onBlur(_objectSpread(_objectSpread({}, callbackParams), {}, {
199
+ date: date.toDate()
200
+ })) : onBlur === null || onBlur === void 0 ? void 0 : onBlur(callbackParams);
134
201
  };
135
202
 
136
203
  var openCalendar = function openCalendar() {
137
- var dateBtn = refDate.current.getElementsByTagName("button")[0];
138
204
  setIsOpen(!isOpen);
139
- setAnchorEl(dateBtn);
140
205
  };
141
206
 
142
207
  var closeCalendar = function closeCalendar() {
143
208
  setIsOpen(false);
144
209
  };
145
210
 
146
- var calendarAction = {
147
- onClick: openCalendar,
148
- icon: /*#__PURE__*/_react["default"].createElement("svg", {
149
- xmlns: "http://www.w3.org/2000/svg",
150
- height: "24",
151
- viewBox: "0 0 24 24",
152
- width: "24",
153
- fill: "currentColor"
154
- }, /*#__PURE__*/_react["default"].createElement("path", {
155
- d: "M0 0h24v24H0z",
156
- fill: "none"
157
- }), /*#__PURE__*/_react["default"].createElement("path", {
158
- 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"
159
- }))
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();
160
215
  };
161
- var dateTheme = (0, _core.createMuiTheme)({
162
- overrides: {
163
- MuiTypography: {
164
- root: {
165
- fontFamily: "".concat(colorsTheme.dateInput.pickerFontFamily, " !important")
166
- }
167
- },
168
- MuiPickersYearSelection: {
169
- container: {
170
- color: colorsTheme.dateInput.pickerYearFontColor,
171
- "&::-webkit-scrollbar": {
172
- width: "3px"
173
- },
174
- "&::-webkit-scrollbar-track": {
175
- backgroundColor: "#D9D9D9",
176
- borderRadius: "3px"
177
- },
178
- "&::-webkit-scrollbar-thumb": {
179
- backgroundColor: "#666666",
180
- borderRadius: "3px"
181
- }
182
- }
183
- },
184
- MuiPickersToolbar: {
185
- toolbar: {
186
- backgroundColor: colorsTheme.dateInput.pickerBackgroundColor,
187
- color: colorsTheme.dateInput.pickerDayFontColor
188
- }
189
- },
190
- MuiIconButton: {
191
- root: {
192
- height: "36px",
193
- width: "36px",
194
- padding: "0px"
195
- }
196
- },
197
- MuiTouchRipple: {
198
- child: {
199
- opacity: "0"
200
- }
201
- },
202
- MuiButtonBase: {
203
- root: {
204
- "&:focus": {
205
- outline: colorsTheme.dateInput.pickerFocusColor + " solid 2px"
206
- }
207
- }
208
- },
209
- MuiPickersBasePicker: {
210
- pickerView: {
211
- minWidth: "unset",
212
- maxWidth: "unset",
213
- minHeight: "unset",
214
- padding: "0px 10px",
215
- height: colorsTheme.dateInput.pickerHeight,
216
- width: colorsTheme.dateInput.pickerWidth,
217
- backgroundColor: colorsTheme.dateInput.pickerBackgroundColor,
218
- fontFamily: colorsTheme.dateInput.pickerFontFamily
219
- }
220
- },
221
- MuiPickersToolbarText: {
222
- toolbarTxt: {
223
- color: colorsTheme.dateInput.pickerActualDateFontColor,
224
- fontFamily: colorsTheme.dateInput.pickerFontFamily,
225
- fontSize: "2rem"
226
- },
227
- toolbarBtnSelected: {
228
- color: colorsTheme.dateInput.pickerActualDateFontColor
229
- }
230
- },
231
- MuiPickersCalendarHeader: {
232
- transitionContainer: {
233
- color: colorsTheme.dateInput.pickerMonthFontColor
234
- },
235
- dayLabel: {
236
- color: colorsTheme.dateInput.pickerWeekFontColor,
237
- fontFamily: colorsTheme.dateInput.pickerFontFamily
238
- },
239
- switchHeader: {
240
- backgroundColor: "#ffffff",
241
- color: colorsTheme.dateInput.pickerDayFontColor
242
- },
243
- iconButton: {
244
- backgroundColor: colorsTheme.dateInput.pickerMonthArrowsBackgroundColor,
245
- "&:hover": {
246
- backgroundColor: colorsTheme.dateInput.pickerMonthArrowsBackgroundColor
247
- }
248
- }
249
- },
250
- MuiPickersCalendar: {
251
- week: {
252
- marginBottom: "2px"
253
- }
254
- },
255
- MuiPickersDay: {
256
- current: {
257
- color: colorsTheme.dateInput.pickerDayFontColor
258
- },
259
- day: {
260
- fontFamily: colorsTheme.dateInput.pickerFontFamily,
261
- color: colorsTheme.dateInput.pickerDayFontColor,
262
- "&:hover": {
263
- backgroundColor: colorsTheme.dateInput.pickerHoverDateBackgroundColor,
264
- color: colorsTheme.dateInput.pickerHoverDateFontColor
265
- }
266
- },
267
- daySelected: {
268
- backgroundColor: colorsTheme.dateInput.pickerSelectedDateBackgroundColor,
269
- color: colorsTheme.dateInput.pickerSelectedDateColor,
270
- "&:hover": {
271
- backgroundColor: colorsTheme.dateInput.pickerSelectedDateBackgroundColor,
272
- color: colorsTheme.dateInput.pickerSelectedDateColor,
273
- opacity: "1"
274
- }
275
- }
276
- },
277
- MuiPickersYear: {
278
- yearSelected: {
279
- color: colorsTheme.dateInput.pickerSelectedDateColor,
280
- backgroundColor: colorsTheme.dateInput.pickerSelectedDateBackgroundColor,
281
- margin: "0px 100px",
282
- borderRadius: "20px"
283
- },
284
- root: {
285
- "&:focus": {
286
- color: colorsTheme.dateInput.pickerHoverDateFontColor,
287
- backgroundColor: colorsTheme.dateInput.pickerHoverDateBackgroundColor
288
- }
289
- }
290
- },
291
- MuiPickersModal: {
292
- dialogAction: {
293
- color: "pink"
294
- }
295
- }
296
- }
297
- });
216
+
217
+ var handleDatePickerOnBlur = function handleDatePickerOnBlur(event) {
218
+ if (!(event !== null && event !== void 0 && event.currentTarget.contains(event.relatedTarget))) closeCalendar();
219
+ };
220
+
298
221
  return /*#__PURE__*/_react["default"].createElement(_styledComponents.ThemeProvider, {
299
222
  theme: colorsTheme
300
- }, /*#__PURE__*/_react["default"].createElement(_core.MuiThemeProvider, {
301
- theme: dateTheme
302
- }, /*#__PURE__*/_react["default"].createElement(_pickers.MuiPickersUtilsProvider, {
303
- utils: _dateFns["default"]
304
- }, /*#__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"], {
305
231
  label: label,
306
232
  name: name,
233
+ defaultValue: defaultValue,
307
234
  value: value !== null && value !== void 0 ? value : innerValue,
308
235
  helperText: helperText,
309
236
  placeholder: placeholder ? format.toUpperCase() : null,
310
- action: calendarAction,
237
+ action: {
238
+ onClick: openCalendar,
239
+ icon: _Icons.calendarIcon,
240
+ title: "Open calendar"
241
+ },
311
242
  clearable: clearable,
312
243
  disabled: disabled,
313
244
  optional: optional,
@@ -318,41 +249,21 @@ var DxcDateInput = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref
318
249
  margin: margin,
319
250
  size: size,
320
251
  tabIndex: tabIndex,
321
- ref: refDate
322
- }), /*#__PURE__*/_react["default"].createElement(_Popover["default"], {
323
- onKeyDown: handleCalendarOnKeyDown,
324
- open: isOpen,
325
- anchorEl: anchorEl,
326
- anchorOrigin: {
327
- vertical: "bottom",
328
- horizontal: "left"
329
- },
330
- transformOrigin: {
331
- vertical: "top",
332
- horizontal: "center"
333
- },
334
- PaperProps: {
335
- style: {
336
- marginTop: "10px"
337
- }
338
- }
339
- }, /*#__PURE__*/_react["default"].createElement(_ClickAwayListener["default"], {
340
- onClickAway: closeCalendar
341
- }, /*#__PURE__*/_react["default"].createElement(_core.Paper, {
342
- role: "dialog",
343
- "aria-modal": "true"
344
- }, /*#__PURE__*/_react["default"].createElement(_pickers.DatePicker, {
345
- variant: "static",
346
- value: getValueForPicker(),
347
- onChange: function onChange(date) {
348
- return handleCalendarOnClick(date);
349
- },
350
- format: format,
351
- disabled: disabled
352
- }))))))));
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
+ })))));
353
265
  });
354
266
 
355
- var StyledDPicker = _styledComponents["default"].div(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])([""])));
356
-
267
+ var StyledContent = (0, _styledComponents["default"])(Popover.Content)(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n &:focus-visible {\n outline: none;\n }\n"])));
357
268
  var _default = DxcDateInput;
358
269
  exports["default"] = _default;