@dxc-technology/halstack-react 0.0.0-5a1e592 → 0.0.0-5b15506

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 (328) hide show
  1. package/BackgroundColorContext.d.ts +1 -10
  2. package/BackgroundColorContext.js +4 -21
  3. package/HalstackContext.d.ts +32 -139
  4. package/HalstackContext.js +10 -35
  5. package/accordion/Accordion.accessibility.test.js +71 -0
  6. package/accordion/Accordion.js +33 -84
  7. package/accordion/Accordion.stories.tsx +5 -51
  8. package/accordion/Accordion.test.js +18 -33
  9. package/accordion/types.d.ts +6 -6
  10. package/accordion-group/AccordionGroup.accessibility.test.js +88 -0
  11. package/accordion-group/AccordionGroup.d.ts +2 -3
  12. package/accordion-group/AccordionGroup.js +17 -44
  13. package/accordion-group/AccordionGroup.stories.tsx +1 -1
  14. package/accordion-group/AccordionGroup.test.js +42 -60
  15. package/accordion-group/AccordionGroupAccordion.js +11 -23
  16. package/accordion-group/AccordionGroupContext.d.ts +3 -0
  17. package/accordion-group/AccordionGroupContext.js +8 -0
  18. package/accordion-group/types.d.ts +7 -7
  19. package/action-icon/ActionIcon.accessibility.test.js +63 -0
  20. package/action-icon/ActionIcon.d.ts +4 -0
  21. package/action-icon/ActionIcon.js +48 -0
  22. package/action-icon/ActionIcon.stories.tsx +41 -0
  23. package/action-icon/ActionIcon.test.js +64 -0
  24. package/action-icon/types.d.ts +26 -0
  25. package/alert/Alert.accessibility.test.js +95 -0
  26. package/alert/Alert.js +29 -118
  27. package/alert/Alert.test.js +28 -45
  28. package/alert/types.d.ts +5 -5
  29. package/badge/Badge.accessibility.test.js +129 -0
  30. package/badge/Badge.d.ts +1 -1
  31. package/badge/Badge.js +142 -42
  32. package/badge/Badge.stories.tsx +210 -0
  33. package/badge/Badge.test.js +30 -0
  34. package/badge/types.d.ts +52 -3
  35. package/bleed/Bleed.js +13 -21
  36. package/bleed/types.d.ts +2 -2
  37. package/box/Box.accessibility.test.js +33 -0
  38. package/box/Box.js +11 -33
  39. package/box/Box.test.js +1 -6
  40. package/box/types.d.ts +3 -3
  41. package/bulleted-list/BulletedList.accessibility.test.js +107 -0
  42. package/bulleted-list/BulletedList.js +22 -55
  43. package/bulleted-list/BulletedList.stories.tsx +2 -93
  44. package/bulleted-list/types.d.ts +5 -5
  45. package/button/Button.accessibility.test.js +127 -0
  46. package/button/Button.js +36 -59
  47. package/button/Button.stories.tsx +33 -133
  48. package/button/Button.test.js +13 -21
  49. package/button/types.d.ts +5 -5
  50. package/card/Card.accessibility.test.js +36 -0
  51. package/card/Card.js +21 -44
  52. package/card/Card.test.js +10 -21
  53. package/card/types.d.ts +5 -5
  54. package/checkbox/Checkbox.accessibility.test.js +87 -0
  55. package/checkbox/Checkbox.js +55 -109
  56. package/checkbox/Checkbox.stories.tsx +0 -54
  57. package/checkbox/Checkbox.test.js +79 -108
  58. package/checkbox/types.d.ts +4 -4
  59. package/chip/Chip.accessibility.test.js +67 -0
  60. package/chip/Chip.js +20 -36
  61. package/chip/Chip.stories.tsx +5 -24
  62. package/chip/Chip.test.js +17 -30
  63. package/chip/types.d.ts +4 -4
  64. package/common/coreTokens.d.ts +105 -14
  65. package/common/coreTokens.js +40 -23
  66. package/common/utils.js +2 -8
  67. package/common/variables.d.ts +32 -136
  68. package/common/variables.js +43 -154
  69. package/container/Container.d.ts +4 -0
  70. package/container/Container.js +194 -0
  71. package/container/Container.stories.tsx +214 -0
  72. package/container/types.d.ts +74 -0
  73. package/container/types.js +5 -0
  74. package/contextual-menu/ContextualMenu.accessibility.test.js +86 -0
  75. package/contextual-menu/ContextualMenu.d.ts +7 -0
  76. package/contextual-menu/ContextualMenu.js +71 -0
  77. package/contextual-menu/ContextualMenu.stories.tsx +182 -0
  78. package/contextual-menu/ContextualMenu.test.js +71 -0
  79. package/contextual-menu/MenuItemAction.d.ts +4 -0
  80. package/contextual-menu/MenuItemAction.js +46 -0
  81. package/contextual-menu/types.d.ts +22 -0
  82. package/contextual-menu/types.js +5 -0
  83. package/date-input/Calendar.js +13 -57
  84. package/date-input/DateInput.accessibility.test.js +216 -0
  85. package/date-input/DateInput.js +45 -94
  86. package/date-input/DateInput.stories.tsx +1 -30
  87. package/date-input/DateInput.test.js +667 -708
  88. package/date-input/DatePicker.js +23 -48
  89. package/date-input/YearPicker.js +8 -34
  90. package/date-input/types.d.ts +28 -26
  91. package/dialog/Dialog.accessibility.test.js +69 -0
  92. package/dialog/Dialog.js +13 -40
  93. package/dialog/Dialog.stories.tsx +170 -0
  94. package/dialog/Dialog.test.js +126 -188
  95. package/dialog/types.d.ts +18 -13
  96. package/divider/Divider.accessibility.test.js +33 -0
  97. package/divider/Divider.d.ts +4 -0
  98. package/divider/Divider.js +36 -0
  99. package/divider/Divider.stories.tsx +223 -0
  100. package/divider/Divider.test.js +38 -0
  101. package/divider/types.d.ts +21 -0
  102. package/divider/types.js +5 -0
  103. package/dropdown/Dropdown.accessibility.test.js +180 -0
  104. package/dropdown/Dropdown.js +59 -128
  105. package/dropdown/Dropdown.stories.tsx +5 -16
  106. package/dropdown/Dropdown.test.js +391 -378
  107. package/dropdown/DropdownMenu.js +8 -19
  108. package/dropdown/DropdownMenuItem.js +11 -20
  109. package/dropdown/types.d.ts +20 -24
  110. package/file-input/FileInput.accessibility.test.js +160 -0
  111. package/file-input/FileInput.js +180 -284
  112. package/file-input/FileInput.stories.tsx +1 -1
  113. package/file-input/FileInput.test.js +279 -354
  114. package/file-input/FileItem.js +25 -66
  115. package/file-input/types.d.ts +9 -9
  116. package/flex/Flex.js +25 -39
  117. package/flex/types.d.ts +6 -6
  118. package/footer/Footer.accessibility.test.js +117 -0
  119. package/footer/Footer.d.ts +1 -1
  120. package/footer/Footer.js +43 -68
  121. package/footer/Footer.stories.tsx +46 -2
  122. package/footer/Footer.test.js +18 -32
  123. package/footer/Icons.d.ts +3 -2
  124. package/footer/Icons.js +66 -7
  125. package/footer/types.d.ts +17 -17
  126. package/grid/Grid.js +1 -16
  127. package/grid/types.d.ts +10 -10
  128. package/header/Header.accessibility.test.js +84 -0
  129. package/header/Header.d.ts +1 -1
  130. package/header/Header.js +36 -103
  131. package/header/Header.test.js +12 -25
  132. package/header/Icons.d.ts +2 -2
  133. package/header/Icons.js +2 -7
  134. package/header/types.d.ts +7 -8
  135. package/heading/Heading.accessibility.test.js +33 -0
  136. package/heading/Heading.js +9 -31
  137. package/heading/Heading.test.js +70 -87
  138. package/heading/types.d.ts +7 -7
  139. package/icon/Icon.accessibility.test.js +30 -0
  140. package/icon/Icon.d.ts +4 -0
  141. package/icon/Icon.js +33 -0
  142. package/icon/Icon.stories.tsx +28 -0
  143. package/icon/types.d.ts +4 -0
  144. package/icon/types.js +5 -0
  145. package/image/Image.accessibility.test.js +56 -0
  146. package/image/Image.d.ts +2 -2
  147. package/image/Image.js +17 -32
  148. package/image/Image.stories.tsx +3 -1
  149. package/image/types.d.ts +2 -2
  150. package/inset/Inset.js +13 -21
  151. package/inset/types.d.ts +2 -2
  152. package/layout/ApplicationLayout.d.ts +2 -2
  153. package/layout/ApplicationLayout.js +15 -55
  154. package/layout/Icons.d.ts +5 -5
  155. package/layout/Icons.js +1 -7
  156. package/layout/types.d.ts +3 -3
  157. package/link/Link.accessibility.test.js +112 -0
  158. package/link/Link.js +28 -47
  159. package/link/Link.stories.tsx +2 -2
  160. package/link/Link.test.js +23 -41
  161. package/link/types.d.ts +14 -14
  162. package/main.d.ts +7 -4
  163. package/main.js +32 -60
  164. package/nav-tabs/NavTabs.accessibility.test.js +44 -0
  165. package/nav-tabs/NavTabs.d.ts +1 -2
  166. package/nav-tabs/NavTabs.js +19 -48
  167. package/nav-tabs/NavTabs.stories.tsx +30 -25
  168. package/nav-tabs/NavTabs.test.js +38 -45
  169. package/nav-tabs/NavTabsContext.d.ts +3 -0
  170. package/nav-tabs/NavTabsContext.js +8 -0
  171. package/nav-tabs/Tab.js +33 -62
  172. package/nav-tabs/types.d.ts +10 -10
  173. package/number-input/NumberInput.accessibility.test.js +228 -0
  174. package/number-input/NumberInput.d.ts +0 -7
  175. package/number-input/NumberInput.js +47 -39
  176. package/number-input/NumberInput.stories.tsx +42 -26
  177. package/number-input/NumberInput.test.js +839 -575
  178. package/number-input/NumberInputContext.d.ts +3 -0
  179. package/number-input/NumberInputContext.js +8 -0
  180. package/number-input/types.d.ts +17 -5
  181. package/package.json +39 -37
  182. package/paginator/Icons.d.ts +5 -5
  183. package/paginator/Icons.js +5 -19
  184. package/paginator/Paginator.accessibility.test.js +79 -0
  185. package/paginator/Paginator.js +15 -43
  186. package/paginator/Paginator.test.js +224 -207
  187. package/paginator/types.d.ts +3 -3
  188. package/paragraph/Paragraph.accessibility.test.js +28 -0
  189. package/paragraph/Paragraph.js +3 -19
  190. package/paragraph/Paragraph.stories.tsx +0 -17
  191. package/password-input/PasswordInput.accessibility.test.js +153 -0
  192. package/password-input/PasswordInput.js +27 -50
  193. package/password-input/PasswordInput.stories.tsx +1 -34
  194. package/password-input/PasswordInput.test.js +153 -129
  195. package/password-input/types.d.ts +8 -7
  196. package/progress-bar/ProgressBar.accessibility.test.js +35 -0
  197. package/progress-bar/ProgressBar.js +21 -53
  198. package/progress-bar/{ProgressBar.stories.jsx → ProgressBar.stories.tsx} +1 -1
  199. package/progress-bar/ProgressBar.test.js +35 -52
  200. package/progress-bar/types.d.ts +3 -3
  201. package/quick-nav/QuickNav.accessibility.test.js +57 -0
  202. package/quick-nav/QuickNav.js +4 -27
  203. package/quick-nav/QuickNav.stories.tsx +1 -1
  204. package/quick-nav/types.d.ts +10 -10
  205. package/radio-group/Radio.js +15 -47
  206. package/radio-group/RadioGroup.accessibility.test.js +97 -0
  207. package/radio-group/RadioGroup.js +34 -80
  208. package/radio-group/RadioGroup.test.js +504 -497
  209. package/radio-group/types.d.ts +5 -5
  210. package/resultset-table/Icons.d.ts +7 -0
  211. package/{resultsetTable → resultset-table}/Icons.js +1 -5
  212. package/resultset-table/ResultsetTable.accessibility.test.js +274 -0
  213. package/resultset-table/ResultsetTable.d.ts +7 -0
  214. package/{resultsetTable → resultset-table}/ResultsetTable.js +44 -69
  215. package/{resultsetTable → resultset-table}/ResultsetTable.stories.tsx +106 -5
  216. package/{resultsetTable → resultset-table}/ResultsetTable.test.js +148 -92
  217. package/{resultsetTable → resultset-table}/types.d.ts +44 -11
  218. package/resultset-table/types.js +5 -0
  219. package/select/Listbox.js +18 -42
  220. package/select/Option.js +26 -35
  221. package/select/Select.accessibility.test.js +217 -0
  222. package/select/Select.js +101 -169
  223. package/select/Select.stories.tsx +33 -97
  224. package/select/Select.test.js +1894 -1846
  225. package/select/types.d.ts +15 -16
  226. package/sidenav/Sidenav.accessibility.test.js +59 -0
  227. package/sidenav/Sidenav.js +44 -81
  228. package/sidenav/Sidenav.stories.tsx +4 -9
  229. package/sidenav/Sidenav.test.js +3 -10
  230. package/{layout → sidenav}/SidenavContext.d.ts +1 -1
  231. package/{layout → sidenav}/SidenavContext.js +3 -9
  232. package/sidenav/types.d.ts +20 -20
  233. package/slider/Slider.accessibility.test.js +104 -0
  234. package/slider/Slider.js +68 -125
  235. package/slider/Slider.test.js +107 -103
  236. package/slider/types.d.ts +4 -4
  237. package/spinner/Spinner.accessibility.test.js +96 -0
  238. package/spinner/Spinner.js +16 -54
  239. package/spinner/Spinner.test.js +25 -34
  240. package/spinner/types.d.ts +3 -3
  241. package/status-light/StatusLight.accessibility.test.js +157 -0
  242. package/status-light/StatusLight.d.ts +4 -0
  243. package/status-light/StatusLight.js +51 -0
  244. package/status-light/StatusLight.stories.tsx +74 -0
  245. package/status-light/StatusLight.test.js +25 -0
  246. package/status-light/types.d.ts +17 -0
  247. package/status-light/types.js +5 -0
  248. package/switch/Switch.accessibility.test.js +89 -0
  249. package/switch/Switch.js +49 -97
  250. package/switch/Switch.stories.tsx +0 -34
  251. package/switch/Switch.test.js +51 -96
  252. package/switch/types.d.ts +4 -4
  253. package/table/DropdownTheme.js +62 -0
  254. package/table/Table.accessibility.test.js +82 -0
  255. package/table/Table.d.ts +6 -2
  256. package/table/Table.js +76 -33
  257. package/table/{Table.stories.jsx → Table.stories.tsx} +297 -2
  258. package/table/Table.test.js +93 -6
  259. package/table/types.d.ts +34 -6
  260. package/tabs/Tab.js +22 -37
  261. package/tabs/Tabs.accessibility.test.js +56 -0
  262. package/tabs/Tabs.js +59 -147
  263. package/tabs/Tabs.stories.tsx +2 -4
  264. package/tabs/Tabs.test.js +57 -131
  265. package/tabs/types.d.ts +21 -21
  266. package/tag/Tag.accessibility.test.js +69 -0
  267. package/tag/Tag.js +27 -57
  268. package/tag/Tag.stories.tsx +4 -7
  269. package/tag/Tag.test.js +17 -36
  270. package/tag/types.d.ts +9 -9
  271. package/text-input/Suggestion.js +9 -26
  272. package/text-input/Suggestions.d.ts +1 -1
  273. package/text-input/Suggestions.js +19 -67
  274. package/text-input/TextInput.accessibility.test.js +321 -0
  275. package/text-input/TextInput.js +193 -285
  276. package/text-input/TextInput.stories.tsx +10 -153
  277. package/text-input/TextInput.test.js +1213 -1269
  278. package/text-input/types.d.ts +21 -17
  279. package/textarea/Textarea.accessibility.test.js +155 -0
  280. package/textarea/Textarea.js +49 -93
  281. package/textarea/{Textarea.stories.jsx → Textarea.stories.tsx} +58 -108
  282. package/textarea/Textarea.test.js +135 -208
  283. package/textarea/types.d.ts +5 -5
  284. package/toggle-group/ToggleGroup.accessibility.test.js +107 -0
  285. package/toggle-group/ToggleGroup.js +25 -64
  286. package/toggle-group/ToggleGroup.stories.tsx +4 -4
  287. package/toggle-group/ToggleGroup.test.js +48 -81
  288. package/toggle-group/types.d.ts +12 -12
  289. package/typography/Typography.accessibility.test.js +339 -0
  290. package/typography/Typography.js +4 -13
  291. package/typography/types.d.ts +1 -1
  292. package/useTheme.d.ts +29 -133
  293. package/useTheme.js +1 -8
  294. package/useTranslatedLabels.js +1 -7
  295. package/utils/BaseTypography.d.ts +2 -2
  296. package/utils/BaseTypography.js +16 -30
  297. package/utils/FocusLock.js +25 -39
  298. package/wizard/Wizard.accessibility.test.js +55 -0
  299. package/wizard/Wizard.js +27 -65
  300. package/wizard/Wizard.stories.tsx +19 -0
  301. package/wizard/Wizard.test.js +53 -80
  302. package/wizard/types.d.ts +8 -8
  303. package/common/OpenSans.css +0 -69
  304. package/common/fonts/OpenSans-Bold.ttf +0 -0
  305. package/common/fonts/OpenSans-BoldItalic.ttf +0 -0
  306. package/common/fonts/OpenSans-ExtraBold.ttf +0 -0
  307. package/common/fonts/OpenSans-ExtraBoldItalic.ttf +0 -0
  308. package/common/fonts/OpenSans-Italic.ttf +0 -0
  309. package/common/fonts/OpenSans-Light.ttf +0 -0
  310. package/common/fonts/OpenSans-LightItalic.ttf +0 -0
  311. package/common/fonts/OpenSans-Regular.ttf +0 -0
  312. package/common/fonts/OpenSans-SemiBold.ttf +0 -0
  313. package/common/fonts/OpenSans-SemiBoldItalic.ttf +0 -0
  314. package/date-input/Icons.d.ts +0 -6
  315. package/date-input/Icons.js +0 -75
  316. package/password-input/Icons.d.ts +0 -6
  317. package/password-input/Icons.js +0 -39
  318. package/resultsetTable/Icons.d.ts +0 -7
  319. package/resultsetTable/ResultsetTable.d.ts +0 -4
  320. package/select/Icons.d.ts +0 -10
  321. package/select/Icons.js +0 -93
  322. package/sidenav/Icons.d.ts +0 -7
  323. package/sidenav/Icons.js +0 -51
  324. package/slider/Slider.stories.tsx +0 -240
  325. package/text-input/Icons.d.ts +0 -8
  326. package/text-input/Icons.js +0 -60
  327. /package/{resultsetTable → action-icon}/types.js +0 -0
  328. /package/spinner/{Spinner.stories.jsx → Spinner.stories.tsx} +0 -0
@@ -0,0 +1,216 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
5
+ var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
6
+ var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
7
+ var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
8
+ var _react = _interopRequireDefault(require("react"));
9
+ var _react2 = require("@testing-library/react");
10
+ var _jestAxe = require("jest-axe");
11
+ var _DateInput = _interopRequireDefault(require("./DateInput.tsx"));
12
+ // Mocking DOMRect for Radix Primitive Popover
13
+ global.globalThis = global;
14
+ global.DOMRect = {
15
+ fromRect: function fromRect() {
16
+ return {
17
+ top: 0,
18
+ left: 0,
19
+ bottom: 0,
20
+ right: 0,
21
+ width: 0,
22
+ height: 0
23
+ };
24
+ }
25
+ };
26
+ global.ResizeObserver = /*#__PURE__*/function () {
27
+ function ResizeObserver() {
28
+ (0, _classCallCheck2["default"])(this, ResizeObserver);
29
+ }
30
+ (0, _createClass2["default"])(ResizeObserver, [{
31
+ key: "observe",
32
+ value: function observe() {}
33
+ }, {
34
+ key: "unobserve",
35
+ value: function unobserve() {}
36
+ }, {
37
+ key: "disconnect",
38
+ value: function disconnect() {}
39
+ }]);
40
+ return ResizeObserver;
41
+ }();
42
+ describe("DateInput component accessibility tests", function () {
43
+ it("Should not have basic accessibility issues", /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee() {
44
+ var _render, baseElement, results;
45
+ return _regenerator["default"].wrap(function _callee$(_context) {
46
+ while (1) switch (_context.prev = _context.next) {
47
+ case 0:
48
+ // baseElement is needed when using React Portals
49
+ _render = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_DateInput["default"], {
50
+ label: "Example label",
51
+ helperText: "Help message",
52
+ defaultValue: "06-04-2007",
53
+ format: "dd/mm/yy",
54
+ name: "DateInput Name",
55
+ margin: "medium",
56
+ size: "medium",
57
+ placeholder: true,
58
+ clearable: true
59
+ })), baseElement = _render.baseElement;
60
+ _context.next = 3;
61
+ return (0, _jestAxe.axe)(baseElement);
62
+ case 3:
63
+ results = _context.sent;
64
+ expect(results).toHaveNoViolations();
65
+ case 5:
66
+ case "end":
67
+ return _context.stop();
68
+ }
69
+ }, _callee);
70
+ })));
71
+ it("Should not have basic accessibility issues for autocomplete mode", /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee2() {
72
+ var _render2, baseElement, results;
73
+ return _regenerator["default"].wrap(function _callee2$(_context2) {
74
+ while (1) switch (_context2.prev = _context2.next) {
75
+ case 0:
76
+ // baseElement is needed when using React Portals
77
+ _render2 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_DateInput["default"], {
78
+ label: "Example label",
79
+ helperText: "Help message",
80
+ defaultValue: "06-04-2007",
81
+ format: "dd/mm/yy",
82
+ name: "DateInput Name",
83
+ margin: "medium",
84
+ size: "medium",
85
+ placeholder: true,
86
+ autocomplete: "on"
87
+ })), baseElement = _render2.baseElement;
88
+ _context2.next = 3;
89
+ return (0, _jestAxe.axe)(baseElement);
90
+ case 3:
91
+ results = _context2.sent;
92
+ expect(results).toHaveNoViolations();
93
+ case 5:
94
+ case "end":
95
+ return _context2.stop();
96
+ }
97
+ }, _callee2);
98
+ })));
99
+ it("Should not have basic accessibility issues for optional mode", /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee3() {
100
+ var _render3, baseElement, results;
101
+ return _regenerator["default"].wrap(function _callee3$(_context3) {
102
+ while (1) switch (_context3.prev = _context3.next) {
103
+ case 0:
104
+ // baseElement is needed when using React Portals
105
+ _render3 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_DateInput["default"], {
106
+ label: "Example label",
107
+ helperText: "Help message",
108
+ defaultValue: "06-04-2007",
109
+ format: "dd/mm/yy",
110
+ name: "DateInput Name",
111
+ margin: "medium",
112
+ size: "medium",
113
+ placeholder: true,
114
+ optional: true
115
+ })), baseElement = _render3.baseElement;
116
+ _context3.next = 3;
117
+ return (0, _jestAxe.axe)(baseElement);
118
+ case 3:
119
+ results = _context3.sent;
120
+ expect(results).toHaveNoViolations();
121
+ case 5:
122
+ case "end":
123
+ return _context3.stop();
124
+ }
125
+ }, _callee3);
126
+ })));
127
+ it("Should not have basic accessibility issues for error mode", /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee4() {
128
+ var _render4, baseElement, results;
129
+ return _regenerator["default"].wrap(function _callee4$(_context4) {
130
+ while (1) switch (_context4.prev = _context4.next) {
131
+ case 0:
132
+ // baseElement is needed when using React Portals
133
+ _render4 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_DateInput["default"], {
134
+ label: "Example label",
135
+ helperText: "Help message",
136
+ defaultValue: "06-04-2007",
137
+ format: "dd/mm/yy",
138
+ name: "DateInput Name",
139
+ margin: "medium",
140
+ error: "Error message.",
141
+ size: "medium",
142
+ placeholder: true,
143
+ clearable: true
144
+ })), baseElement = _render4.baseElement;
145
+ _context4.next = 3;
146
+ return (0, _jestAxe.axe)(baseElement);
147
+ case 3:
148
+ results = _context4.sent;
149
+ expect(results).toHaveNoViolations();
150
+ case 5:
151
+ case "end":
152
+ return _context4.stop();
153
+ }
154
+ }, _callee4);
155
+ })));
156
+ it("Should not have basic accessibility issues for read-only mode", /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee5() {
157
+ var _render5, baseElement, results;
158
+ return _regenerator["default"].wrap(function _callee5$(_context5) {
159
+ while (1) switch (_context5.prev = _context5.next) {
160
+ case 0:
161
+ // baseElement is needed when using React Portals
162
+ _render5 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_DateInput["default"], {
163
+ label: "Example label",
164
+ helperText: "Help message",
165
+ defaultValue: "06-04-2007",
166
+ format: "dd/mm/yy",
167
+ name: "DateInput Name",
168
+ margin: "medium",
169
+ error: "Error message.",
170
+ size: "medium",
171
+ placeholder: true,
172
+ clearable: true,
173
+ readOnly: true
174
+ })), baseElement = _render5.baseElement;
175
+ _context5.next = 3;
176
+ return (0, _jestAxe.axe)(baseElement);
177
+ case 3:
178
+ results = _context5.sent;
179
+ expect(results).toHaveNoViolations();
180
+ case 5:
181
+ case "end":
182
+ return _context5.stop();
183
+ }
184
+ }, _callee5);
185
+ })));
186
+ it("Should not have basic accessibility issues for disabled mode", /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee6() {
187
+ var _render6, baseElement, results;
188
+ return _regenerator["default"].wrap(function _callee6$(_context6) {
189
+ while (1) switch (_context6.prev = _context6.next) {
190
+ case 0:
191
+ // baseElement is needed when using React Portals
192
+ _render6 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_DateInput["default"], {
193
+ label: "Example label",
194
+ helperText: "Help message",
195
+ defaultValue: "06-04-2007",
196
+ format: "dd/mm/yy",
197
+ name: "DateInput Name",
198
+ margin: "medium",
199
+ error: "Error message.",
200
+ size: "medium",
201
+ placeholder: true,
202
+ clearable: true,
203
+ disabled: true
204
+ })), baseElement = _render6.baseElement;
205
+ _context6.next = 3;
206
+ return (0, _jestAxe.axe)(baseElement);
207
+ case 3:
208
+ results = _context6.sent;
209
+ expect(results).toHaveNoViolations();
210
+ case 5:
211
+ case "end":
212
+ return _context6.stop();
213
+ }
214
+ }, _callee6);
215
+ })));
216
+ });
@@ -1,62 +1,36 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
4
  var _typeof = require("@babel/runtime/helpers/typeof");
6
-
7
5
  Object.defineProperty(exports, "__esModule", {
8
6
  value: true
9
7
  });
10
8
  exports["default"] = void 0;
11
-
12
9
  var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
13
-
14
10
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
15
-
16
11
  var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
17
-
18
12
  var _react = _interopRequireWildcard(require("react"));
19
-
20
13
  var _dayjs = _interopRequireDefault(require("dayjs"));
21
-
22
14
  var _styledComponents = _interopRequireWildcard(require("styled-components"));
23
-
24
15
  var _useTheme = _interopRequireDefault(require("../useTheme"));
25
-
26
16
  var _useTranslatedLabels = _interopRequireDefault(require("../useTranslatedLabels"));
27
-
28
17
  var _TextInput = _interopRequireDefault(require("../text-input/TextInput"));
29
-
30
18
  var _DatePicker = _interopRequireDefault(require("./DatePicker"));
31
-
32
19
  var Popover = _interopRequireWildcard(require("@radix-ui/react-popover"));
33
-
34
20
  var _customParseFormat = _interopRequireDefault(require("dayjs/plugin/customParseFormat"));
35
-
36
21
  var _uuid = require("uuid");
37
-
38
- var _Icons = require("./Icons");
39
-
40
22
  var _templateObject;
41
-
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); }
43
-
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; }
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
-
23
+ function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
24
+ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { "default": e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n["default"] = e, t && t.set(e, n), n; }
25
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
26
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2["default"])(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
50
27
  _dayjs["default"].extend(_customParseFormat["default"]);
51
-
52
28
  var getValueForPicker = function getValueForPicker(value, format) {
53
29
  return (0, _dayjs["default"])(value, format.toUpperCase(), true);
54
30
  };
55
-
56
31
  var getDate = function getDate(value, format, lastValidYear, setLastValidYear) {
57
32
  if ((value || value === "") && format.toUpperCase().includes("YYYY")) return getValueForPicker(value, format);else {
58
33
  var newDate = getValueForPicker(value, format);
59
-
60
34
  if (!lastValidYear) {
61
35
  if (+newDate.format("YY") < 68) {
62
36
  setLastValidYear(2000 + +newDate.format("YY"));
@@ -68,60 +42,51 @@ var getDate = function getDate(value, format, lastValidYear, setLastValidYear) {
68
42
  } else {
69
43
  newDate = newDate.set("year", (lastValidYear <= 1999 ? 1900 : 2000) + +newDate.format("YY"));
70
44
  }
71
-
72
45
  return newDate;
73
46
  }
74
47
  };
75
-
76
48
  var DxcDateInput = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref) {
77
49
  var _ref2;
78
-
79
50
  var label = _ref.label,
80
- name = _ref.name,
81
- _ref$defaultValue = _ref.defaultValue,
82
- defaultValue = _ref$defaultValue === void 0 ? "" : _ref$defaultValue,
83
- value = _ref.value,
84
- _ref$format = _ref.format,
85
- format = _ref$format === void 0 ? "dd-MM-yyyy" : _ref$format,
86
- helperText = _ref.helperText,
87
- _ref$placeholder = _ref.placeholder,
88
- placeholder = _ref$placeholder === void 0 ? false : _ref$placeholder,
89
- clearable = _ref.clearable,
90
- disabled = _ref.disabled,
91
- readOnly = _ref.readOnly,
92
- optional = _ref.optional,
93
- onChange = _ref.onChange,
94
- onBlur = _ref.onBlur,
95
- error = _ref.error,
96
- autocomplete = _ref.autocomplete,
97
- margin = _ref.margin,
98
- size = _ref.size,
99
- tabIndex = _ref.tabIndex;
100
-
51
+ name = _ref.name,
52
+ _ref$defaultValue = _ref.defaultValue,
53
+ defaultValue = _ref$defaultValue === void 0 ? "" : _ref$defaultValue,
54
+ value = _ref.value,
55
+ _ref$format = _ref.format,
56
+ format = _ref$format === void 0 ? "dd-MM-yyyy" : _ref$format,
57
+ helperText = _ref.helperText,
58
+ _ref$placeholder = _ref.placeholder,
59
+ placeholder = _ref$placeholder === void 0 ? false : _ref$placeholder,
60
+ clearable = _ref.clearable,
61
+ disabled = _ref.disabled,
62
+ readOnly = _ref.readOnly,
63
+ optional = _ref.optional,
64
+ onChange = _ref.onChange,
65
+ onBlur = _ref.onBlur,
66
+ error = _ref.error,
67
+ autocomplete = _ref.autocomplete,
68
+ margin = _ref.margin,
69
+ size = _ref.size,
70
+ tabIndex = _ref.tabIndex;
101
71
  var _useState = (0, _react.useState)(defaultValue),
102
- _useState2 = (0, _slicedToArray2["default"])(_useState, 2),
103
- innerValue = _useState2[0],
104
- setInnerValue = _useState2[1];
105
-
72
+ _useState2 = (0, _slicedToArray2["default"])(_useState, 2),
73
+ innerValue = _useState2[0],
74
+ setInnerValue = _useState2[1];
106
75
  var _useState3 = (0, _react.useState)(false),
107
- _useState4 = (0, _slicedToArray2["default"])(_useState3, 2),
108
- isOpen = _useState4[0],
109
- setIsOpen = _useState4[1];
110
-
76
+ _useState4 = (0, _slicedToArray2["default"])(_useState3, 2),
77
+ isOpen = _useState4[0],
78
+ setIsOpen = _useState4[1];
111
79
  var _useState5 = (0, _react.useState)("date-picker-".concat((0, _uuid.v4)())),
112
- _useState6 = (0, _slicedToArray2["default"])(_useState5, 1),
113
- calendarId = _useState6[0];
114
-
80
+ _useState6 = (0, _slicedToArray2["default"])(_useState5, 1),
81
+ calendarId = _useState6[0];
115
82
  var _useState7 = (0, _react.useState)(getValueForPicker((_ref2 = value !== null && value !== void 0 ? value : defaultValue) !== null && _ref2 !== void 0 ? _ref2 : "", format)),
116
- _useState8 = (0, _slicedToArray2["default"])(_useState7, 2),
117
- dayjsDate = _useState8[0],
118
- setDayjsDate = _useState8[1];
119
-
83
+ _useState8 = (0, _slicedToArray2["default"])(_useState7, 2),
84
+ dayjsDate = _useState8[0],
85
+ setDayjsDate = _useState8[1];
120
86
  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),
121
- _useState10 = (0, _slicedToArray2["default"])(_useState9, 2),
122
- lastValidYear = _useState10[0],
123
- setLastValidYear = _useState10[1];
124
-
87
+ _useState10 = (0, _slicedToArray2["default"])(_useState9, 2),
88
+ lastValidYear = _useState10[0],
89
+ setLastValidYear = _useState10[1];
125
90
  var colorsTheme = (0, _useTheme["default"])();
126
91
  var translatedLabels = (0, _useTranslatedLabels["default"])();
127
92
  var dateRef = (0, _react.useRef)(null);
@@ -138,15 +103,12 @@ var DxcDateInput = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref
138
103
  actionButtonRef === null || actionButtonRef === void 0 ? void 0 : actionButtonRef.setAttribute("aria-describedby", calendarId);
139
104
  }
140
105
  }, [isOpen, disabled, calendarId]);
141
-
142
106
  var handleCalendarOnClick = function handleCalendarOnClick(newDate) {
143
107
  var newValue = newDate.format(format.toUpperCase());
144
-
145
108
  if (!value) {
146
109
  setDayjsDate(newDate);
147
110
  setInnerValue(newValue);
148
111
  }
149
-
150
112
  setLastValidYear(newDate.get("year"));
151
113
  newDate !== null && newDate !== void 0 && newDate.set("day", newDate.get("date")).toJSON() ? onChange === null || onChange === void 0 ? void 0 : onChange({
152
114
  value: newValue,
@@ -155,10 +117,9 @@ var DxcDateInput = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref
155
117
  value: newValue
156
118
  });
157
119
  };
158
-
159
120
  var handleOnChange = function handleOnChange(_ref3) {
160
121
  var newValue = _ref3.value,
161
- inputError = _ref3.error;
122
+ inputError = _ref3.error;
162
123
  value !== null && value !== void 0 ? value : setInnerValue(newValue);
163
124
  var newDate = getDate(newValue, format, lastValidYear, setLastValidYear);
164
125
  var invalidDateMessage = newValue !== "" && !newDate.isValid() && translatedLabels.dateInput.invalidDateErrorMessage;
@@ -168,7 +129,6 @@ var DxcDateInput = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref
168
129
  } : {
169
130
  value: newValue
170
131
  };
171
-
172
132
  if (newDate.isValid()) {
173
133
  setDayjsDate(newDate);
174
134
  onChange === null || onChange === void 0 ? void 0 : onChange(_objectSpread(_objectSpread({}, callbackParams), {}, {
@@ -178,16 +138,14 @@ var DxcDateInput = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref
178
138
  onChange === null || onChange === void 0 ? void 0 : onChange(callbackParams);
179
139
  setLastValidYear(function (validYear) {
180
140
  var _dayjsDate$get;
181
-
182
141
  return (_dayjsDate$get = dayjsDate === null || dayjsDate === void 0 ? void 0 : dayjsDate.get("year")) !== null && _dayjsDate$get !== void 0 ? _dayjsDate$get : validYear;
183
142
  });
184
143
  setDayjsDate(null);
185
144
  }
186
145
  };
187
-
188
146
  var handleOnBlur = function handleOnBlur(_ref4) {
189
147
  var value = _ref4.value,
190
- inputError = _ref4.error;
148
+ inputError = _ref4.error;
191
149
  var date = getDate(value, format, lastValidYear, setLastValidYear);
192
150
  var invalidDateMessage = value !== "" && !date.isValid() && translatedLabels.dateInput.invalidDateErrorMessage;
193
151
  var callbackParams = inputError || invalidDateMessage ? {
@@ -200,25 +158,20 @@ var DxcDateInput = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref
200
158
  date: date.toDate()
201
159
  })) : onBlur === null || onBlur === void 0 ? void 0 : onBlur(callbackParams);
202
160
  };
203
-
204
161
  var openCalendar = function openCalendar() {
205
162
  setIsOpen(!isOpen);
206
163
  };
207
-
208
164
  var closeCalendar = function closeCalendar() {
209
165
  setIsOpen(false);
210
166
  };
211
-
212
167
  var handleDatePickerEscKeydown = function handleDatePickerEscKeydown(event) {
213
168
  event.preventDefault();
214
169
  closeCalendar();
215
170
  dateRef === null || dateRef === void 0 ? void 0 : dateRef.current.getElementsByTagName("input")[0].focus();
216
171
  };
217
-
218
172
  var handleDatePickerOnBlur = function handleDatePickerOnBlur(event) {
219
173
  if (!(event !== null && event !== void 0 && event.currentTarget.contains(event.relatedTarget))) closeCalendar();
220
174
  };
221
-
222
175
  return /*#__PURE__*/_react["default"].createElement(_styledComponents.ThemeProvider, {
223
176
  theme: colorsTheme
224
177
  }, /*#__PURE__*/_react["default"].createElement("div", {
@@ -237,7 +190,7 @@ var DxcDateInput = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref
237
190
  placeholder: placeholder ? format.toUpperCase() : null,
238
191
  action: {
239
192
  onClick: openCalendar,
240
- icon: _Icons.calendarIcon,
193
+ icon: "filled_calendar_today",
241
194
  title: "Open calendar"
242
195
  },
243
196
  clearable: clearable,
@@ -252,7 +205,7 @@ var DxcDateInput = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref
252
205
  size: size,
253
206
  tabIndex: tabIndex,
254
207
  ref: dateRef
255
- })), /*#__PURE__*/_react["default"].createElement(StyledContent, {
208
+ })), /*#__PURE__*/_react["default"].createElement(Popover.Portal, null, /*#__PURE__*/_react["default"].createElement(StyledPopoverContent, {
256
209
  sideOffset: error ? -18 : 2,
257
210
  align: "end",
258
211
  "aria-modal": true,
@@ -263,9 +216,7 @@ var DxcDateInput = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref
263
216
  id: calendarId,
264
217
  onDateSelect: handleCalendarOnClick,
265
218
  date: dayjsDate
266
- })))));
219
+ }))))));
267
220
  });
268
-
269
- var StyledContent = (0, _styledComponents["default"])(Popover.Content)(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n &:focus-visible {\n outline: none;\n }\n"])));
270
- var _default = DxcDateInput;
271
- exports["default"] = _default;
221
+ var StyledPopoverContent = (0, _styledComponents["default"])(Popover.Content)(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n z-index: 2147483647;\n &:focus-visible {\n outline: none;\n }\n"])));
222
+ var _default = exports["default"] = DxcDateInput;
@@ -6,15 +6,13 @@ import YearPicker from "./YearPicker";
6
6
  import Calendar from "./Calendar";
7
7
  import Title from "../../.storybook/components/Title";
8
8
  import ExampleContainer from "../../.storybook/components/ExampleContainer";
9
- import { BackgroundColorProvider } from "../BackgroundColorContext";
10
- import DarkContainer from "../../.storybook/components/DarkSection";
11
9
  import dayjs from "dayjs";
12
10
  import useTheme from "../useTheme";
13
11
  import { ThemeProvider } from "styled-components";
14
12
  import { HalstackProvider } from "../HalstackContext";
15
13
 
16
14
  export default {
17
- title: "Date input",
15
+ title: "Date Input",
18
16
  component: DxcDateInput,
19
17
  };
20
18
 
@@ -59,33 +57,6 @@ const DateInputChromatic = () => (
59
57
  <Title title="Relation between icons" theme="light" level={4} />
60
58
  <DxcDateInput label="Error date input" error="Error message." defaultValue="06-04-2007" clearable />
61
59
  </ExampleContainer>
62
- <BackgroundColorProvider color="#333333">
63
- <DarkContainer>
64
- <Title title="Dark" theme="dark" level={2} />
65
- <ExampleContainer>
66
- <Title title="Complete date input" theme="dark" level={4} />
67
- <DxcDateInput label="Date input" helperText="Help message" format="yyyy/dd/mm" placeholder optional />
68
- </ExampleContainer>
69
- <ExampleContainer>
70
- <Title title="Disabled" theme="dark" level={4} />
71
- <DxcDateInput
72
- label="Disabled Date input"
73
- helperText="Help message"
74
- defaultValue="06-04-2027"
75
- clearable
76
- disabled
77
- />
78
- </ExampleContainer>
79
- <ExampleContainer>
80
- <Title title="Invalid" theme="dark" level={4} />
81
- <DxcDateInput label="Error date input" error="Error message." placeholder />
82
- </ExampleContainer>
83
- <ExampleContainer>
84
- <Title title="Relation between icons" theme="dark" level={4} />
85
- <DxcDateInput label="Error date input" defaultValue="06-04-2007" error="Error message." clearable />
86
- </ExampleContainer>
87
- </DarkContainer>
88
- </BackgroundColorProvider>
89
60
  <Title title="Margins" theme="light" level={2} />
90
61
  <ExampleContainer>
91
62
  <Title title="Xxsmall" theme="light" level={4} />