@dxc-technology/halstack-react 0.0.0-d3554d7 → 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 (267) 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 +26 -12
  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 +31 -38
  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 +1 -1
  18. package/badge/Badge.d.ts +1 -1
  19. package/badge/Badge.js +5 -3
  20. package/badge/types.d.ts +1 -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 +1 -1
  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 +1 -1
  35. package/button/types.d.ts +7 -7
  36. package/card/Card.js +25 -28
  37. package/card/Card.test.js +1 -1
  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 +101 -11
  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 +3 -5
  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 +483 -352
  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 +521 -155
  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 +334 -5
  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 +507 -110
  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 +14 -14
  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 +14 -26
  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 +20 -4
  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 +1 -1
  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 +9 -19
  115. package/link/types.d.ts +7 -23
  116. package/main.d.ts +8 -10
  117. package/main.js +46 -56
  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 +46 -12
  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 +78 -39
  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 +17 -19
  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 +68 -23
  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/radio-group/Radio.d.ts +1 -1
  151. package/radio-group/Radio.js +43 -28
  152. package/radio-group/RadioGroup.js +32 -28
  153. package/radio-group/RadioGroup.stories.tsx +135 -17
  154. package/radio-group/RadioGroup.test.js +145 -117
  155. package/radio-group/types.d.ts +79 -2
  156. package/resultsetTable/Icons.d.ts +7 -0
  157. package/resultsetTable/Icons.js +51 -0
  158. package/resultsetTable/ResultsetTable.js +49 -108
  159. package/resultsetTable/ResultsetTable.stories.tsx +50 -25
  160. package/resultsetTable/ResultsetTable.test.js +61 -42
  161. package/resultsetTable/types.d.ts +2 -2
  162. package/select/Icons.d.ts +10 -0
  163. package/select/Icons.js +93 -0
  164. package/select/Listbox.d.ts +4 -0
  165. package/select/Listbox.js +169 -0
  166. package/select/Option.d.ts +4 -0
  167. package/select/Option.js +97 -0
  168. package/select/Select.js +179 -384
  169. package/select/Select.stories.tsx +531 -142
  170. package/select/Select.test.js +652 -324
  171. package/select/types.d.ts +53 -13
  172. package/sidenav/Sidenav.d.ts +6 -5
  173. package/sidenav/Sidenav.js +183 -53
  174. package/sidenav/Sidenav.stories.tsx +249 -149
  175. package/sidenav/Sidenav.test.js +25 -37
  176. package/sidenav/types.d.ts +50 -27
  177. package/slider/Slider.d.ts +2 -2
  178. package/slider/Slider.js +124 -98
  179. package/slider/Slider.stories.tsx +72 -9
  180. package/slider/Slider.test.js +143 -22
  181. package/slider/types.d.ts +10 -2
  182. package/spinner/Spinner.js +4 -4
  183. package/spinner/Spinner.stories.jsx +27 -1
  184. package/spinner/Spinner.test.js +1 -1
  185. package/switch/Switch.d.ts +2 -2
  186. package/switch/Switch.js +152 -69
  187. package/switch/Switch.stories.tsx +53 -42
  188. package/switch/Switch.test.js +156 -4
  189. package/switch/types.d.ts +12 -4
  190. package/table/Table.js +3 -3
  191. package/table/Table.stories.jsx +80 -1
  192. package/table/Table.test.js +2 -2
  193. package/tabs/Tab.d.ts +4 -0
  194. package/tabs/Tab.js +133 -0
  195. package/tabs/Tabs.d.ts +1 -1
  196. package/tabs/Tabs.js +363 -109
  197. package/tabs/Tabs.stories.tsx +119 -13
  198. package/tabs/Tabs.test.js +241 -14
  199. package/tabs/types.d.ts +19 -5
  200. package/tag/Tag.js +17 -22
  201. package/tag/Tag.stories.tsx +25 -8
  202. package/tag/Tag.test.js +1 -1
  203. package/tag/types.d.ts +1 -1
  204. package/text-input/Icons.d.ts +8 -0
  205. package/text-input/Icons.js +60 -0
  206. package/text-input/Suggestion.d.ts +4 -0
  207. package/text-input/Suggestion.js +84 -0
  208. package/text-input/Suggestions.d.ts +4 -0
  209. package/text-input/Suggestions.js +134 -0
  210. package/text-input/TextInput.js +221 -344
  211. package/text-input/TextInput.stories.tsx +290 -195
  212. package/text-input/TextInput.test.js +763 -731
  213. package/text-input/types.d.ts +50 -12
  214. package/textarea/Textarea.js +17 -26
  215. package/textarea/Textarea.stories.jsx +65 -6
  216. package/textarea/Textarea.test.js +38 -37
  217. package/textarea/types.d.ts +18 -11
  218. package/toggle-group/ToggleGroup.d.ts +1 -1
  219. package/toggle-group/ToggleGroup.js +6 -5
  220. package/toggle-group/ToggleGroup.stories.tsx +46 -4
  221. package/toggle-group/ToggleGroup.test.js +36 -5
  222. package/toggle-group/types.d.ts +9 -1
  223. package/typography/Typography.d.ts +4 -0
  224. package/typography/Typography.js +32 -0
  225. package/typography/Typography.stories.tsx +198 -0
  226. package/typography/types.d.ts +18 -0
  227. package/typography/types.js +5 -0
  228. package/useTheme.d.ts +1234 -1
  229. package/useTheme.js +3 -3
  230. package/useTranslatedLabels.d.ts +85 -0
  231. package/useTranslatedLabels.js +20 -0
  232. package/utils/BaseTypography.d.ts +21 -0
  233. package/utils/BaseTypography.js +108 -0
  234. package/utils/FocusLock.d.ts +13 -0
  235. package/utils/FocusLock.js +139 -0
  236. package/wizard/Wizard.d.ts +1 -1
  237. package/wizard/Wizard.js +59 -55
  238. package/wizard/Wizard.stories.tsx +48 -19
  239. package/wizard/Wizard.test.js +37 -24
  240. package/wizard/types.d.ts +10 -5
  241. package/ThemeContext.d.ts +0 -10
  242. package/ThemeContext.js +0 -243
  243. package/common/RequiredComponent.js +0 -32
  244. package/list/List.d.ts +0 -4
  245. package/list/List.js +0 -47
  246. package/list/List.stories.tsx +0 -95
  247. package/list/types.d.ts +0 -7
  248. package/radio/Radio.d.ts +0 -4
  249. package/radio/Radio.js +0 -174
  250. package/radio/Radio.stories.tsx +0 -192
  251. package/radio/Radio.test.js +0 -71
  252. package/radio/types.d.ts +0 -54
  253. package/row/Row.d.ts +0 -3
  254. package/row/Row.js +0 -127
  255. package/row/Row.stories.tsx +0 -237
  256. package/row/types.d.ts +0 -10
  257. package/stack/Stack.d.ts +0 -3
  258. package/stack/Stack.js +0 -97
  259. package/stack/Stack.stories.tsx +0 -164
  260. package/stack/types.d.ts +0 -9
  261. package/text/Text.d.ts +0 -7
  262. package/text/Text.js +0 -30
  263. package/text/Text.stories.tsx +0 -19
  264. /package/{list → bulleted-list}/types.js +0 -0
  265. /package/{radio → flex}/types.js +0 -0
  266. /package/{row → nav-tabs}/types.js +0 -0
  267. /package/{stack → quick-nav}/types.js +0 -0
@@ -0,0 +1,4 @@
1
+ import React from "react";
2
+ import { DatePickerPropsType } from "./types";
3
+ declare const _default: React.MemoExoticComponent<({ date, onDateSelect, id }: DatePickerPropsType) => JSX.Element>;
4
+ export default _default;
@@ -0,0 +1,146 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ var _typeof = require("@babel/runtime/helpers/typeof");
6
+
7
+ Object.defineProperty(exports, "__esModule", {
8
+ value: true
9
+ });
10
+ exports["default"] = void 0;
11
+
12
+ var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
13
+
14
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
15
+
16
+ var _dayjs = _interopRequireDefault(require("dayjs"));
17
+
18
+ var _react = _interopRequireWildcard(require("react"));
19
+
20
+ var _styledComponents = _interopRequireDefault(require("styled-components"));
21
+
22
+ var _Calendar = _interopRequireDefault(require("./Calendar"));
23
+
24
+ var _YearPicker = _interopRequireDefault(require("./YearPicker"));
25
+
26
+ var _useTranslatedLabels = _interopRequireDefault(require("../useTranslatedLabels"));
27
+
28
+ var _Icons = require("./Icons");
29
+
30
+ var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5;
31
+
32
+ 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); }
33
+
34
+ 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; }
35
+
36
+ var today = (0, _dayjs["default"])();
37
+
38
+ var DxcDatePicker = function DxcDatePicker(_ref) {
39
+ var date = _ref.date,
40
+ onDateSelect = _ref.onDateSelect,
41
+ id = _ref.id;
42
+
43
+ var _useState = (0, _react.useState)(date !== null && date !== void 0 && date.isValid() ? date : (0, _dayjs["default"])()),
44
+ _useState2 = (0, _slicedToArray2["default"])(_useState, 2),
45
+ innerDate = _useState2[0],
46
+ setInnerDate = _useState2[1];
47
+
48
+ var _useState3 = (0, _react.useState)("calendar"),
49
+ _useState4 = (0, _slicedToArray2["default"])(_useState3, 2),
50
+ content = _useState4[0],
51
+ setContent = _useState4[1];
52
+
53
+ var selectedDate = date !== null && date !== void 0 && date.isValid() ? date : null;
54
+ var translatedLabels = (0, _useTranslatedLabels["default"])();
55
+
56
+ var handleDateSelect = function handleDateSelect(date) {
57
+ setInnerDate(date);
58
+ onDateSelect(date);
59
+ };
60
+
61
+ var handleOnYearSelect = function handleOnYearSelect(year) {
62
+ setInnerDate(innerDate.set("year", year));
63
+ setContent("calendar");
64
+ };
65
+
66
+ var handleMonthChange = function handleMonthChange(date) {
67
+ setInnerDate(date);
68
+ };
69
+
70
+ return /*#__PURE__*/_react["default"].createElement(DatePicker, {
71
+ id: id
72
+ }, /*#__PURE__*/_react["default"].createElement(PickerHeader, null, /*#__PURE__*/_react["default"].createElement(HeaderButton, {
73
+ "aria-label": translatedLabels.calendar.previousMonthTitle,
74
+ title: translatedLabels.calendar.previousMonthTitle,
75
+ onClick: function onClick() {
76
+ return handleMonthChange(innerDate.set("month", innerDate.get("month") - 1));
77
+ }
78
+ }, _Icons.leftCaret), /*#__PURE__*/_react["default"].createElement(HeaderYearTrigger, {
79
+ "aria-live": "polite",
80
+ onClick: function onClick() {
81
+ return setContent(function (content) {
82
+ return content === "yearPicker" ? "calendar" : "yearPicker";
83
+ });
84
+ }
85
+ }, /*#__PURE__*/_react["default"].createElement(HeaderYearTriggerLabel, null, translatedLabels.calendar.months[innerDate.get("month")], " ", innerDate.format("YYYY")), content === "yearPicker" ? _Icons.upCaret : _Icons.downCaret), /*#__PURE__*/_react["default"].createElement(HeaderButton, {
86
+ "aria-label": translatedLabels.calendar.nextMonthTitle,
87
+ title: translatedLabels.calendar.nextMonthTitle,
88
+ onClick: function onClick() {
89
+ return handleMonthChange(innerDate.set("month", innerDate.get("month") + 1));
90
+ }
91
+ }, _Icons.rightCaret)), content === "calendar" && /*#__PURE__*/_react["default"].createElement(_Calendar["default"], {
92
+ innerDate: innerDate,
93
+ selectedDate: selectedDate,
94
+ onInnerDateChange: setInnerDate,
95
+ onDaySelect: handleDateSelect,
96
+ today: today
97
+ }), content === "yearPicker" && /*#__PURE__*/_react["default"].createElement(_YearPicker["default"], {
98
+ selectedDate: selectedDate,
99
+ onYearSelect: handleOnYearSelect,
100
+ today: today
101
+ }));
102
+ };
103
+
104
+ var DatePicker = _styledComponents["default"].div(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n padding-top: 16px;\n background-color: ", ";\n box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1);\n border: ", ";\n border-radius: 4px;\n width: fit-content;\n font-family: ", ";\n font-size: ", ";\n color: ", ";\n font-weight: ", ";\n"])), function (props) {
105
+ return props.theme.dateInput.pickerBackgroundColor;
106
+ }, function (props) {
107
+ return "".concat(props.theme.dateInput.pickerBorderWidth, " ").concat(props.theme.dateInput.pickerBorderStyle, "\n ").concat(props.theme.dateInput.pickerBorderColor);
108
+ }, function (props) {
109
+ return props.theme.dateInput.pickerFontFamily;
110
+ }, function (props) {
111
+ return props.theme.dateInput.pickerFontSize;
112
+ }, function (props) {
113
+ return props.theme.dateInput.pickerFontColor;
114
+ }, function (props) {
115
+ return props.theme.dateInput.pickerFontWeight;
116
+ });
117
+
118
+ var PickerHeader = _styledComponents["default"].div(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2["default"])(["\n box-sizing: border-box;\n display: flex;\n gap: 8px;\n align-items: center;\n justify-content: space-between;\n padding: 0px 16px;\n"])));
119
+
120
+ var HeaderButton = _styledComponents["default"].button(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n align-items: center;\n justify-content: center;\n width: 24px;\n height: 24px;\n padding: 0px;\n color: ", ";\n background-color: ", ";\n border-radius: 4px;\n border: none;\n cursor: pointer;\n\n &:hover {\n color: ", ";\n background-color: ", ";\n }\n &:focus {\n outline: ", ";\n }\n &:active {\n color: ", ";\n background-color: ", ";\n }\n svg {\n width: 24px;\n height: 24px;\n }\n"])), function (props) {
121
+ return props.theme.dateInput.pickerHeaderFontColor;
122
+ }, function (props) {
123
+ return props.theme.dateInput.pickerHeaderBackgroundColor;
124
+ }, function (props) {
125
+ return props.theme.dateInput.pickerHeaderHoverFontColor;
126
+ }, function (props) {
127
+ return props.theme.dateInput.pickerHeaderHoverBackgroundColor;
128
+ }, function (props) {
129
+ return "".concat(props.theme.dateInput.pickerFocusColor, " solid\n ").concat(props.theme.dateInput.pickerFocusWidth);
130
+ }, function (props) {
131
+ return props.theme.dateInput.pickerHeaderActiveFontColor;
132
+ }, function (props) {
133
+ return props.theme.dateInput.pickerHeaderActiveBackgroundColor;
134
+ });
135
+
136
+ var HeaderYearTrigger = (0, _styledComponents["default"])(HeaderButton)(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2["default"])(["\n gap: 8px;\n height: 40px;\n width: 172px;\n"])));
137
+
138
+ var HeaderYearTriggerLabel = _styledComponents["default"].span(_templateObject5 || (_templateObject5 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n align-items: center;\n justify-content: center;\n font-family: ", ";\n font-size: ", ";\n"])), function (props) {
139
+ return props.theme.dateInput.pickerFontFamily;
140
+ }, function (props) {
141
+ return props.theme.dateInput.pickerHeaderFontSize;
142
+ });
143
+
144
+ var _default = /*#__PURE__*/_react["default"].memo(DxcDatePicker);
145
+
146
+ exports["default"] = _default;
@@ -0,0 +1,6 @@
1
+ /// <reference types="react" />
2
+ export declare const calendarIcon: JSX.Element;
3
+ export declare const leftCaret: JSX.Element;
4
+ export declare const rightCaret: JSX.Element;
5
+ export declare const downCaret: JSX.Element;
6
+ export declare const upCaret: JSX.Element;
@@ -0,0 +1,75 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.upCaret = exports.rightCaret = exports.leftCaret = exports.downCaret = exports.calendarIcon = void 0;
9
+
10
+ var _react = _interopRequireDefault(require("react"));
11
+
12
+ var calendarIcon = /*#__PURE__*/_react["default"].createElement("svg", {
13
+ xmlns: "http://www.w3.org/2000/svg",
14
+ height: "24",
15
+ viewBox: "0 0 24 24",
16
+ width: "24",
17
+ fill: "currentColor"
18
+ }, /*#__PURE__*/_react["default"].createElement("path", {
19
+ d: "M0 0h24v24H0z",
20
+ fill: "none"
21
+ }), /*#__PURE__*/_react["default"].createElement("path", {
22
+ 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"
23
+ }));
24
+
25
+ exports.calendarIcon = calendarIcon;
26
+
27
+ var leftCaret = /*#__PURE__*/_react["default"].createElement("svg", {
28
+ fill: "currentColor",
29
+ focusable: "false",
30
+ viewBox: "0 0 24 24"
31
+ }, /*#__PURE__*/_react["default"].createElement("path", {
32
+ d: "M15.41 16.59L10.83 12l4.58-4.59L14 6l-6 6 6 6 1.41-1.41z"
33
+ }), /*#__PURE__*/_react["default"].createElement("path", {
34
+ fill: "none",
35
+ d: "M0 0h24v24H0V0z"
36
+ }));
37
+
38
+ exports.leftCaret = leftCaret;
39
+
40
+ var rightCaret = /*#__PURE__*/_react["default"].createElement("svg", {
41
+ fill: "currentColor",
42
+ focusable: "false",
43
+ viewBox: "0 0 24 24"
44
+ }, /*#__PURE__*/_react["default"].createElement("path", {
45
+ d: "M8.59 16.59L13.17 12 8.59 7.41 10 6l6 6-6 6-1.41-1.41z"
46
+ }), /*#__PURE__*/_react["default"].createElement("path", {
47
+ fill: "none",
48
+ d: "M0 0h24v24H0V0z"
49
+ }));
50
+
51
+ exports.rightCaret = rightCaret;
52
+
53
+ var downCaret = /*#__PURE__*/_react["default"].createElement("svg", {
54
+ xmlns: "http://www.w3.org/2000/svg",
55
+ width: "24",
56
+ height: "24",
57
+ viewBox: "0 0 24 24"
58
+ }, /*#__PURE__*/_react["default"].createElement("path", {
59
+ d: "M7.5 10L12.5 15L17.5 10H7.5Z",
60
+ fill: "currentColor"
61
+ }));
62
+
63
+ exports.downCaret = downCaret;
64
+
65
+ var upCaret = /*#__PURE__*/_react["default"].createElement("svg", {
66
+ xmlns: "http://www.w3.org/2000/svg",
67
+ height: "24",
68
+ width: "24",
69
+ viewBox: "0 0 24 24"
70
+ }, /*#__PURE__*/_react["default"].createElement("path", {
71
+ d: "m7 14 5-5 5 5Z",
72
+ fill: "currentColor"
73
+ }));
74
+
75
+ exports.upCaret = upCaret;
@@ -0,0 +1,4 @@
1
+ import React from "react";
2
+ import { YearPickerPropsType } from "./types";
3
+ declare const _default: React.MemoExoticComponent<({ onYearSelect, selectedDate, today }: YearPickerPropsType) => JSX.Element>;
4
+ export default _default;
@@ -0,0 +1,126 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ var _typeof = require("@babel/runtime/helpers/typeof");
6
+
7
+ Object.defineProperty(exports, "__esModule", {
8
+ value: true
9
+ });
10
+ exports["default"] = void 0;
11
+
12
+ var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
13
+
14
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
15
+
16
+ var _dayjs = _interopRequireDefault(require("dayjs"));
17
+
18
+ var _react = _interopRequireWildcard(require("react"));
19
+
20
+ var _styledComponents = _interopRequireDefault(require("styled-components"));
21
+
22
+ var _templateObject, _templateObject2;
23
+
24
+ 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); }
25
+
26
+ 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; }
27
+
28
+ var getYearsArray = function getYearsArray() {
29
+ var yearList = [];
30
+
31
+ for (var i = 1899; i <= 2100; i++) {
32
+ yearList.push(i);
33
+ }
34
+
35
+ return yearList;
36
+ };
37
+
38
+ var yearList = getYearsArray();
39
+
40
+ var YearPicker = function YearPicker(_ref) {
41
+ var onYearSelect = _ref.onYearSelect,
42
+ selectedDate = _ref.selectedDate,
43
+ today = _ref.today;
44
+
45
+ var _useState = (0, _react.useState)(selectedDate ? selectedDate.get("year") : (0, _dayjs["default"])().get("year")),
46
+ _useState2 = (0, _slicedToArray2["default"])(_useState, 2),
47
+ yearToFocus = _useState2[0],
48
+ setYearToFocus = _useState2[1];
49
+
50
+ (0, _react.useEffect)(function () {
51
+ var _yearToFocusEl$scroll;
52
+
53
+ var yearToFocusEl = document.getElementById("year_".concat(yearToFocus));
54
+ yearToFocusEl === null || yearToFocusEl === void 0 ? void 0 : (_yearToFocusEl$scroll = yearToFocusEl.scrollIntoView) === null || _yearToFocusEl$scroll === void 0 ? void 0 : _yearToFocusEl$scroll.call(yearToFocusEl, {
55
+ block: "nearest",
56
+ inline: "start"
57
+ });
58
+ yearToFocusEl === null || yearToFocusEl === void 0 ? void 0 : yearToFocusEl.focus();
59
+ }, [yearToFocus]);
60
+
61
+ var handleDayKeyboardEvent = function handleDayKeyboardEvent(event) {
62
+ switch (event.key) {
63
+ case "ArrowUp":
64
+ setYearToFocus(function (prev) {
65
+ return prev > 1899 ? prev - 1 : prev;
66
+ });
67
+ break;
68
+
69
+ case "ArrowDown":
70
+ setYearToFocus(function (prev) {
71
+ return prev < 2100 ? prev + 1 : prev;
72
+ });
73
+ break;
74
+ }
75
+ };
76
+
77
+ return /*#__PURE__*/_react["default"].createElement(YearPickerContainer, null, yearList.map(function (year) {
78
+ return /*#__PURE__*/_react["default"].createElement(YearPickerButton, {
79
+ "aria-label": year,
80
+ key: year,
81
+ selected: (selectedDate === null || selectedDate === void 0 ? void 0 : selectedDate.get("year")) === year,
82
+ "aria-selected": (selectedDate === null || selectedDate === void 0 ? void 0 : selectedDate.get("year")) === year,
83
+ tabIndex: yearToFocus === year ? 0 : -1,
84
+ isCurrentYear: today.get("year") === year,
85
+ onKeyDown: function onKeyDown(event) {
86
+ return handleDayKeyboardEvent(event);
87
+ },
88
+ id: "year_".concat(year),
89
+ onClick: function onClick() {
90
+ onYearSelect(year);
91
+ }
92
+ }, year);
93
+ }));
94
+ };
95
+
96
+ var YearPickerContainer = _styledComponents["default"].div(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n box-sizing: border-box;\n display: flex;\n flex-direction: column;\n gap: 4px;\n align-items: center;\n overflow-y: scroll;\n width: 292px;\n height: 312px;\n padding: 2px 8px 8px 8px;\n"])));
97
+
98
+ var YearPickerButton = _styledComponents["default"].button(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n align-items: center;\n justify-content: center;\n width: 80px;\n min-height: 40px;\n line-height: 21px;\n background-color: transparent;\n border: none;\n border-radius: 50px;\n cursor: pointer;\n font-family: ", ";\n font-size: ", ";\n color: ", ";\n font-weight: ", ";\n\n ", "\n\n &:hover, &:focus, &:active {\n font-size: ", ";\n line-height: 36px;\n }\n &:hover {\n color: ", ";\n background-color: ", ";\n }\n &:focus {\n color: ", ";\n outline: ", ";\n }\n &:active {\n color: ", ";\n background-color: ", " !important;\n }\n"])), function (props) {
99
+ return props.theme.dateInput.pickerFontFamily;
100
+ }, function (props) {
101
+ return props.theme.dateInput.pickerFontSize;
102
+ }, function (props) {
103
+ return props.theme.dateInput.pickerFontColor;
104
+ }, function (props) {
105
+ return props.theme.dateInput.pickerFontWeight;
106
+ }, function (props) {
107
+ return props.selected ? "font-size: ".concat(props.theme.dateInput.pickerInteractedYearFontSize, ";\n line-height: 36px;\n color: ").concat(props.theme.dateInput.pickerSelectedFontColor, " !important;\n background-color: ").concat(props.theme.dateInput.pickerSelectedBackgroundColor, " !important;") : props.isCurrentYear ? "border: 1px solid ".concat(props.theme.dateInput.pickerCurrentDateBorderColor, "; \n color: ").concat(props.theme.dateInput.pickerCurrentYearFontColor, ";") : "";
108
+ }, function (props) {
109
+ return props.theme.dateInput.pickerInteractedYearFontSize;
110
+ }, function (props) {
111
+ return props.theme.dateInput.pickerHoverFontColor;
112
+ }, function (props) {
113
+ return props.theme.dateInput.pickerHoverBackgroundColor;
114
+ }, function (props) {
115
+ return props.theme.dateInput.pickerHoverFontColor;
116
+ }, function (props) {
117
+ return "".concat(props.theme.dateInput.pickerFocusColor, " solid\n ").concat(props.theme.dateInput.pickerFocusWidth);
118
+ }, function (props) {
119
+ return props.theme.dateInput.pickerActiveFontColor;
120
+ }, function (props) {
121
+ return props.theme.dateInput.pickerActiveBackgroundColor;
122
+ });
123
+
124
+ var _default = /*#__PURE__*/_react["default"].memo(YearPicker);
125
+
126
+ exports["default"] = _default;
@@ -1,3 +1,4 @@
1
+ import { Dayjs } from "dayjs";
1
2
  declare type Space = "xxsmall" | "xsmall" | "small" | "medium" | "large" | "xlarge" | "xxlarge";
2
3
  declare type Margin = {
3
4
  top?: Space;
@@ -14,6 +15,10 @@ declare type Props = {
14
15
  * Name attribute of the input element.
15
16
  */
16
17
  name?: string;
18
+ /**
19
+ * Initial value of the input element, only when it is uncontrolled.
20
+ */
21
+ defaultValue?: string;
17
22
  /**
18
23
  * Value of the input element. If undefined, the component will be uncontrolled and the value will be managed internally by the component.
19
24
  */
@@ -50,28 +55,31 @@ declare type Props = {
50
55
  * element of the component. An object including the string value, the
51
56
  * error and the date value will be passed to this function.
52
57
  * If the string value is a valid date, error will
53
- * be null. Also, if the string value is not a valid date, date will be null.
58
+ * be undefined. Also, if the string value is not a valid date, date will be undefined.
54
59
  */
55
60
  onChange?: (val: {
56
61
  value: string;
57
- error: string | null;
58
- date: Date | null;
62
+ error?: string;
63
+ date?: Date;
59
64
  }) => void;
60
65
  /**
61
66
  * This function will be called when the input element loses the focus.
62
67
  * An object including the string value, the error and the date value
63
68
  * will be passed to this function. If the string value is a valid date, error will
64
- * be null. Also, if the string value is not a valid date, date will be null.
69
+ * be undefined. Also, if the string value is not a valid date, date will be undefined.
65
70
  */
66
71
  onBlur?: (val: {
67
72
  value: string;
68
- error: string | null;
69
- date: Date | null;
73
+ error?: string;
74
+ date?: Date;
70
75
  }) => void;
71
76
  /**
72
- * If it is defined, the component will change its appearance, showing
73
- * the error below the date input component. If it is not defined, the error
74
- * messages will be managed internally, but never displayed on its own.
77
+ * If it is a defined value and also a truthy string, the component will
78
+ * change its appearance, showing the error below the date input
79
+ * component. If the defined value is an empty string, it will reserve a
80
+ * space below the component for a future error, but it would not change
81
+ * its look. In case of being undefined or null, both the appearance and
82
+ * the space for the error message would not be modified.
75
83
  */
76
84
  error?: string;
77
85
  /**
@@ -93,6 +101,56 @@ declare type Props = {
93
101
  */
94
102
  tabIndex?: number;
95
103
  };
104
+ export declare type DatePickerPropsType = {
105
+ /**
106
+ * Initial selected date value. If invalid the actual date will be used instead.
107
+ */
108
+ date: Dayjs;
109
+ /**
110
+ * Function called when a date is selected.
111
+ */
112
+ onDateSelect: (date: Dayjs) => void;
113
+ /**
114
+ * Id assigned to the date picker.
115
+ */
116
+ id: string;
117
+ };
118
+ export declare type CalendarPropsType = {
119
+ /**
120
+ * Initial selected date value. If invalid the actual date will be used instead.
121
+ */
122
+ selectedDate: Dayjs;
123
+ /**
124
+ * Date showed by the calendar.
125
+ */
126
+ innerDate: Dayjs;
127
+ /**
128
+ * Function called when the date showned needs to be updated
129
+ */
130
+ onInnerDateChange: (date: Dayjs) => void;
131
+ /**
132
+ * Function called when a date is selected.
133
+ */
134
+ onDaySelect: (date: Dayjs) => void;
135
+ /**
136
+ * Current date
137
+ */
138
+ today: Dayjs;
139
+ };
140
+ export declare type YearPickerPropsType = {
141
+ /**
142
+ * Initial selected date value. If invalid the actual date will be used instead.
143
+ */
144
+ selectedDate: Dayjs;
145
+ /**
146
+ * Function called when a year is selected.
147
+ */
148
+ onYearSelect: (year: number) => void;
149
+ /**
150
+ * Current date
151
+ */
152
+ today: Dayjs;
153
+ };
96
154
  /**
97
155
  * Reference to the component.
98
156
  */