@dxc-technology/halstack-react 0.0.0-74c93cf → 0.0.0-74dd241

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 (322) hide show
  1. package/BackgroundColorContext.js +1 -1
  2. package/HalstackContext.d.ts +2 -5
  3. package/HalstackContext.js +6 -6
  4. package/accordion/Accordion.accessibility.test.d.ts +1 -0
  5. package/accordion/Accordion.accessibility.test.js +71 -0
  6. package/accordion/Accordion.js +9 -10
  7. package/accordion/Accordion.stories.tsx +4 -15
  8. package/accordion/Accordion.test.d.ts +1 -0
  9. package/accordion/Accordion.test.js +3 -3
  10. package/accordion-group/AccordionGroup.accessibility.test.d.ts +1 -0
  11. package/accordion-group/AccordionGroup.accessibility.test.js +82 -0
  12. package/accordion-group/AccordionGroup.js +1 -1
  13. package/accordion-group/AccordionGroup.stories.tsx +23 -23
  14. package/accordion-group/AccordionGroup.test.d.ts +1 -0
  15. package/accordion-group/AccordionGroup.test.js +5 -9
  16. package/accordion-group/AccordionGroupAccordion.js +1 -1
  17. package/action-icon/ActionIcon.accessibility.test.d.ts +1 -0
  18. package/action-icon/ActionIcon.accessibility.test.js +63 -0
  19. package/action-icon/ActionIcon.test.d.ts +1 -0
  20. package/action-icon/ActionIcon.test.js +1 -1
  21. package/alert/Alert.accessibility.test.d.ts +1 -0
  22. package/alert/Alert.accessibility.test.js +95 -0
  23. package/alert/Alert.js +21 -72
  24. package/alert/Alert.test.d.ts +1 -0
  25. package/alert/Alert.test.js +1 -1
  26. package/badge/Badge.accessibility.test.d.ts +1 -0
  27. package/badge/Badge.accessibility.test.js +129 -0
  28. package/badge/Badge.js +6 -4
  29. package/badge/Badge.stories.tsx +11 -11
  30. package/badge/Badge.test.d.ts +1 -0
  31. package/badge/Badge.test.js +2 -2
  32. package/badge/types.d.ts +1 -1
  33. package/box/Box.accessibility.test.d.ts +1 -0
  34. package/box/Box.accessibility.test.js +33 -0
  35. package/box/Box.js +1 -1
  36. package/box/Box.test.d.ts +1 -0
  37. package/box/Box.test.js +1 -1
  38. package/breadcrumbs/Breadcrumbs.accessibility.test.d.ts +1 -0
  39. package/breadcrumbs/Breadcrumbs.accessibility.test.js +96 -0
  40. package/breadcrumbs/Breadcrumbs.d.ts +4 -0
  41. package/breadcrumbs/Breadcrumbs.js +79 -0
  42. package/breadcrumbs/Breadcrumbs.stories.tsx +194 -0
  43. package/breadcrumbs/Breadcrumbs.test.d.ts +1 -0
  44. package/breadcrumbs/Breadcrumbs.test.js +168 -0
  45. package/breadcrumbs/Item.d.ts +4 -0
  46. package/breadcrumbs/Item.js +52 -0
  47. package/breadcrumbs/dropdownTheme.d.ts +53 -0
  48. package/breadcrumbs/dropdownTheme.js +62 -0
  49. package/breadcrumbs/types.d.ts +16 -0
  50. package/breadcrumbs/types.js +5 -0
  51. package/bulleted-list/BulletedList.accessibility.test.d.ts +1 -0
  52. package/bulleted-list/BulletedList.accessibility.test.js +119 -0
  53. package/bulleted-list/BulletedList.js +7 -4
  54. package/bulleted-list/BulletedList.stories.tsx +1 -1
  55. package/button/Button.accessibility.test.d.ts +1 -0
  56. package/button/Button.accessibility.test.js +127 -0
  57. package/button/Button.js +1 -1
  58. package/button/Button.stories.tsx +3 -4
  59. package/button/Button.test.d.ts +1 -0
  60. package/button/Button.test.js +1 -1
  61. package/card/Card.accessibility.test.d.ts +1 -0
  62. package/card/Card.accessibility.test.js +36 -0
  63. package/card/Card.js +3 -2
  64. package/card/Card.stories.tsx +1 -1
  65. package/card/Card.test.d.ts +1 -0
  66. package/card/Card.test.js +1 -1
  67. package/checkbox/Checkbox.accessibility.test.d.ts +1 -0
  68. package/checkbox/Checkbox.accessibility.test.js +87 -0
  69. package/checkbox/Checkbox.js +10 -13
  70. package/checkbox/Checkbox.test.d.ts +1 -0
  71. package/checkbox/Checkbox.test.js +1 -1
  72. package/chip/Chip.accessibility.test.d.ts +1 -0
  73. package/chip/Chip.accessibility.test.js +67 -0
  74. package/chip/Chip.js +11 -6
  75. package/chip/Chip.stories.tsx +6 -25
  76. package/chip/Chip.test.d.ts +1 -0
  77. package/chip/Chip.test.js +5 -5
  78. package/common/coreTokens.js +3 -3
  79. package/common/variables.d.ts +2 -5
  80. package/common/variables.js +68 -71
  81. package/container/Container.stories.tsx +3 -3
  82. package/contextual-menu/ContextualMenu.accessibility.test.d.ts +1 -0
  83. package/contextual-menu/ContextualMenu.accessibility.test.js +98 -0
  84. package/contextual-menu/ContextualMenu.d.ts +3 -5
  85. package/contextual-menu/ContextualMenu.js +89 -52
  86. package/contextual-menu/ContextualMenu.stories.tsx +115 -74
  87. package/contextual-menu/ContextualMenu.test.d.ts +1 -0
  88. package/contextual-menu/ContextualMenu.test.js +200 -24
  89. package/contextual-menu/GroupItem.d.ts +4 -0
  90. package/contextual-menu/GroupItem.js +67 -0
  91. package/contextual-menu/ItemAction.d.ts +4 -0
  92. package/contextual-menu/ItemAction.js +50 -0
  93. package/contextual-menu/MenuItem.d.ts +4 -0
  94. package/contextual-menu/MenuItem.js +29 -0
  95. package/contextual-menu/SingleItem.d.ts +4 -0
  96. package/contextual-menu/SingleItem.js +38 -0
  97. package/contextual-menu/types.d.ts +50 -11
  98. package/date-input/Calendar.js +47 -31
  99. package/date-input/DateInput.accessibility.test.d.ts +1 -0
  100. package/date-input/DateInput.accessibility.test.js +229 -0
  101. package/date-input/DateInput.js +28 -23
  102. package/date-input/DateInput.stories.tsx +18 -12
  103. package/date-input/DateInput.test.d.ts +1 -0
  104. package/date-input/DateInput.test.js +39 -39
  105. package/date-input/DatePicker.js +13 -7
  106. package/date-input/YearPicker.js +10 -5
  107. package/dialog/Dialog.accessibility.test.d.ts +1 -0
  108. package/dialog/Dialog.accessibility.test.js +69 -0
  109. package/dialog/Dialog.js +9 -20
  110. package/dialog/Dialog.stories.tsx +8 -4
  111. package/dialog/Dialog.test.d.ts +1 -0
  112. package/dialog/Dialog.test.js +112 -49
  113. package/divider/Divider.accessibility.test.d.ts +1 -0
  114. package/divider/Divider.accessibility.test.js +33 -0
  115. package/divider/Divider.test.d.ts +1 -0
  116. package/dropdown/Dropdown.accessibility.test.d.ts +1 -0
  117. package/dropdown/Dropdown.accessibility.test.js +183 -0
  118. package/dropdown/Dropdown.js +16 -15
  119. package/dropdown/Dropdown.stories.tsx +11 -11
  120. package/dropdown/Dropdown.test.d.ts +1 -0
  121. package/dropdown/Dropdown.test.js +101 -72
  122. package/dropdown/DropdownMenu.js +4 -4
  123. package/dropdown/DropdownMenuItem.js +2 -1
  124. package/file-input/FileInput.accessibility.test.d.ts +1 -0
  125. package/file-input/FileInput.accessibility.test.js +167 -0
  126. package/file-input/FileInput.js +6 -47
  127. package/file-input/FileInput.test.d.ts +1 -0
  128. package/file-input/FileInput.test.js +51 -106
  129. package/file-input/FileItem.js +18 -28
  130. package/file-input/types.d.ts +0 -4
  131. package/footer/Footer.accessibility.test.d.ts +1 -0
  132. package/footer/Footer.accessibility.test.js +125 -0
  133. package/footer/Footer.js +8 -6
  134. package/footer/Footer.stories.tsx +40 -3
  135. package/footer/Footer.test.d.ts +1 -0
  136. package/footer/Footer.test.js +1 -1
  137. package/footer/Icons.js +2 -30
  138. package/footer/types.d.ts +1 -1
  139. package/grid/Grid.stories.tsx +3 -1
  140. package/header/Header.accessibility.test.d.ts +1 -0
  141. package/header/Header.accessibility.test.js +94 -0
  142. package/header/Header.js +12 -22
  143. package/header/Header.stories.tsx +17 -1
  144. package/header/Header.test.d.ts +1 -0
  145. package/header/Header.test.js +1 -1
  146. package/header/Icons.js +1 -6
  147. package/heading/Heading.accessibility.test.d.ts +1 -0
  148. package/heading/Heading.accessibility.test.js +33 -0
  149. package/heading/Heading.js +1 -1
  150. package/heading/Heading.test.d.ts +1 -0
  151. package/heading/Heading.test.js +1 -14
  152. package/icon/Icon.accessibility.test.d.ts +1 -0
  153. package/icon/Icon.accessibility.test.js +30 -0
  154. package/icon/Icon.js +1 -1
  155. package/image/Image.accessibility.test.d.ts +1 -0
  156. package/image/Image.accessibility.test.js +56 -0
  157. package/image/Image.js +1 -1
  158. package/layout/ApplicationLayout.js +9 -6
  159. package/layout/Icons.d.ts +0 -1
  160. package/layout/Icons.js +1 -11
  161. package/link/Link.accessibility.test.d.ts +1 -0
  162. package/link/Link.accessibility.test.js +108 -0
  163. package/link/Link.js +8 -6
  164. package/link/Link.stories.tsx +4 -4
  165. package/link/Link.test.d.ts +1 -0
  166. package/link/Link.test.js +1 -1
  167. package/link/types.d.ts +1 -1
  168. package/main.d.ts +2 -1
  169. package/main.js +8 -1
  170. package/nav-tabs/NavTabs.accessibility.test.d.ts +1 -0
  171. package/nav-tabs/NavTabs.accessibility.test.js +44 -0
  172. package/nav-tabs/NavTabs.js +19 -4
  173. package/nav-tabs/NavTabs.stories.tsx +41 -23
  174. package/nav-tabs/NavTabs.test.d.ts +1 -0
  175. package/nav-tabs/NavTabs.test.js +10 -9
  176. package/nav-tabs/Tab.js +17 -18
  177. package/nav-tabs/types.d.ts +1 -1
  178. package/number-input/NumberInput.accessibility.test.d.ts +1 -0
  179. package/number-input/NumberInput.accessibility.test.js +227 -0
  180. package/number-input/NumberInput.js +1 -1
  181. package/number-input/NumberInput.stories.tsx +2 -16
  182. package/number-input/NumberInput.test.d.ts +1 -0
  183. package/number-input/NumberInput.test.js +6 -7
  184. package/package.json +31 -27
  185. package/paginator/Paginator.accessibility.test.d.ts +1 -0
  186. package/paginator/Paginator.accessibility.test.js +78 -0
  187. package/paginator/Paginator.js +13 -10
  188. package/paginator/Paginator.test.d.ts +1 -0
  189. package/paginator/Paginator.test.js +2 -3
  190. package/paragraph/Paragraph.accessibility.test.d.ts +1 -0
  191. package/paragraph/Paragraph.accessibility.test.js +28 -0
  192. package/password-input/PasswordInput.accessibility.test.d.ts +1 -0
  193. package/password-input/PasswordInput.accessibility.test.js +152 -0
  194. package/password-input/PasswordInput.js +7 -7
  195. package/password-input/PasswordInput.stories.tsx +1 -1
  196. package/password-input/PasswordInput.test.d.ts +1 -0
  197. package/password-input/PasswordInput.test.js +6 -7
  198. package/progress-bar/ProgressBar.accessibility.test.d.ts +1 -0
  199. package/progress-bar/ProgressBar.accessibility.test.js +35 -0
  200. package/progress-bar/ProgressBar.js +6 -4
  201. package/progress-bar/ProgressBar.test.d.ts +1 -0
  202. package/progress-bar/ProgressBar.test.js +1 -1
  203. package/quick-nav/QuickNav.accessibility.test.d.ts +1 -0
  204. package/quick-nav/QuickNav.accessibility.test.js +57 -0
  205. package/quick-nav/QuickNav.js +1 -1
  206. package/radio-group/Radio.js +6 -9
  207. package/radio-group/RadioGroup.accessibility.test.d.ts +1 -0
  208. package/radio-group/RadioGroup.accessibility.test.js +97 -0
  209. package/radio-group/RadioGroup.js +14 -16
  210. package/radio-group/RadioGroup.test.d.ts +1 -0
  211. package/radio-group/RadioGroup.test.js +3 -5
  212. package/resultset-table/ResultsetTable.accessibility.test.d.ts +1 -0
  213. package/resultset-table/ResultsetTable.accessibility.test.js +284 -0
  214. package/resultset-table/ResultsetTable.js +3 -2
  215. package/resultset-table/ResultsetTable.stories.tsx +13 -1
  216. package/resultset-table/ResultsetTable.test.d.ts +1 -0
  217. package/resultset-table/ResultsetTable.test.js +2 -4
  218. package/select/Listbox.js +24 -16
  219. package/select/Option.js +12 -10
  220. package/select/Select.accessibility.test.d.ts +1 -0
  221. package/select/Select.accessibility.test.js +227 -0
  222. package/select/Select.js +38 -28
  223. package/select/Select.stories.tsx +60 -112
  224. package/select/Select.test.d.ts +1 -0
  225. package/select/Select.test.js +371 -474
  226. package/select/types.d.ts +1 -1
  227. package/sidenav/Sidenav.accessibility.test.d.ts +1 -0
  228. package/sidenav/Sidenav.accessibility.test.js +59 -0
  229. package/sidenav/Sidenav.js +16 -12
  230. package/sidenav/Sidenav.stories.tsx +5 -10
  231. package/sidenav/Sidenav.test.d.ts +1 -0
  232. package/sidenav/Sidenav.test.js +1 -1
  233. package/sidenav/types.d.ts +2 -2
  234. package/slider/Slider.accessibility.test.d.ts +1 -0
  235. package/slider/Slider.accessibility.test.js +103 -0
  236. package/slider/Slider.js +11 -13
  237. package/slider/Slider.stories.tsx +180 -0
  238. package/slider/Slider.test.d.ts +1 -0
  239. package/slider/Slider.test.js +13 -11
  240. package/spinner/Spinner.accessibility.test.d.ts +1 -0
  241. package/spinner/Spinner.accessibility.test.js +96 -0
  242. package/spinner/Spinner.js +6 -2
  243. package/spinner/Spinner.test.d.ts +1 -0
  244. package/spinner/Spinner.test.js +1 -1
  245. package/status-light/StatusLight.accessibility.test.d.ts +1 -0
  246. package/status-light/StatusLight.accessibility.test.js +157 -0
  247. package/status-light/StatusLight.test.d.ts +1 -0
  248. package/status-light/StatusLight.test.js +1 -1
  249. package/switch/Switch.accessibility.test.d.ts +1 -0
  250. package/switch/Switch.accessibility.test.js +98 -0
  251. package/switch/Switch.js +6 -9
  252. package/switch/Switch.stories.tsx +12 -0
  253. package/switch/Switch.test.d.ts +1 -0
  254. package/switch/Switch.test.js +1 -1
  255. package/table/Table.accessibility.test.d.ts +1 -0
  256. package/table/Table.accessibility.test.js +92 -0
  257. package/table/Table.js +1 -1
  258. package/table/Table.stories.tsx +13 -1
  259. package/table/Table.test.d.ts +1 -0
  260. package/table/Table.test.js +2 -4
  261. package/tabs/Tab.js +6 -5
  262. package/tabs/Tabs.accessibility.test.d.ts +1 -0
  263. package/tabs/Tabs.accessibility.test.js +56 -0
  264. package/tabs/Tabs.js +9 -20
  265. package/tabs/Tabs.stories.tsx +7 -3
  266. package/tabs/Tabs.test.d.ts +1 -0
  267. package/tabs/Tabs.test.js +20 -38
  268. package/tabs/types.d.ts +2 -2
  269. package/tag/Tag.accessibility.test.d.ts +1 -0
  270. package/tag/Tag.accessibility.test.js +69 -0
  271. package/tag/Tag.js +7 -7
  272. package/tag/Tag.stories.tsx +5 -8
  273. package/tag/Tag.test.d.ts +1 -0
  274. package/tag/Tag.test.js +5 -13
  275. package/tag/types.d.ts +2 -2
  276. package/text-input/Suggestion.js +1 -1
  277. package/text-input/Suggestions.js +17 -7
  278. package/text-input/TextInput.accessibility.test.d.ts +1 -0
  279. package/text-input/TextInput.accessibility.test.js +320 -0
  280. package/text-input/TextInput.js +34 -30
  281. package/text-input/TextInput.stories.tsx +10 -7
  282. package/text-input/TextInput.test.d.ts +1 -0
  283. package/text-input/TextInput.test.js +2 -3
  284. package/textarea/Textarea.accessibility.test.d.ts +1 -0
  285. package/textarea/Textarea.accessibility.test.js +155 -0
  286. package/textarea/Textarea.js +14 -13
  287. package/textarea/Textarea.test.d.ts +1 -0
  288. package/textarea/Textarea.test.js +1 -1
  289. package/toggle-group/ToggleGroup.accessibility.test.d.ts +1 -0
  290. package/toggle-group/ToggleGroup.accessibility.test.js +107 -0
  291. package/toggle-group/ToggleGroup.js +10 -12
  292. package/toggle-group/ToggleGroup.stories.tsx +4 -4
  293. package/toggle-group/ToggleGroup.test.d.ts +1 -0
  294. package/toggle-group/ToggleGroup.test.js +1 -1
  295. package/toggle-group/types.d.ts +2 -2
  296. package/typography/Typography.accessibility.test.d.ts +1 -0
  297. package/typography/Typography.accessibility.test.js +339 -0
  298. package/typography/Typography.stories.tsx +1 -3
  299. package/useTheme.d.ts +2 -5
  300. package/utils/BaseTypography.js +1 -1
  301. package/utils/FocusLock.js +3 -2
  302. package/wizard/Wizard.accessibility.test.d.ts +1 -0
  303. package/wizard/Wizard.accessibility.test.js +55 -0
  304. package/wizard/Wizard.js +14 -25
  305. package/wizard/Wizard.stories.tsx +20 -1
  306. package/wizard/Wizard.test.d.ts +1 -0
  307. package/wizard/Wizard.test.js +1 -1
  308. package/wizard/types.d.ts +1 -1
  309. package/contextual-menu/MenuItemAction.d.ts +0 -4
  310. package/contextual-menu/MenuItemAction.js +0 -46
  311. package/date-input/Icons.d.ts +0 -6
  312. package/date-input/Icons.js +0 -58
  313. package/paginator/Icons.d.ts +0 -5
  314. package/paginator/Icons.js +0 -40
  315. package/password-input/Icons.d.ts +0 -6
  316. package/password-input/Icons.js +0 -35
  317. package/select/Icons.d.ts +0 -10
  318. package/select/Icons.js +0 -89
  319. package/sidenav/Icons.d.ts +0 -7
  320. package/sidenav/Icons.js +0 -47
  321. package/text-input/Icons.d.ts +0 -8
  322. package/text-input/Icons.js +0 -56
@@ -11,10 +11,9 @@ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/sli
11
11
  var _react = _interopRequireWildcard(require("react"));
12
12
  var _styledComponents = _interopRequireDefault(require("styled-components"));
13
13
  var _useTranslatedLabels = _interopRequireDefault(require("../useTranslatedLabels"));
14
- var _Flex = _interopRequireDefault(require("../flex/Flex"));
15
- var _templateObject, _templateObject2, _templateObject3, _templateObject4;
14
+ var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6;
16
15
  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); }
17
- 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; }
16
+ 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 && {}.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; }
18
17
  var getDays = function getDays(innerDate) {
19
18
  var monthDayCells = [];
20
19
  var lastMonthNumberOfDays = innerDate.set("month", innerDate.get("month") - 1).endOf("month");
@@ -49,12 +48,20 @@ var getDateToFocus = function getDateToFocus(selectedDate, innerDate, today) {
49
48
  var isDaySelected = function isDaySelected(date, selectedDate) {
50
49
  return (selectedDate === null || selectedDate === void 0 ? void 0 : selectedDate.get("month")) === date.month && (selectedDate === null || selectedDate === void 0 ? void 0 : selectedDate.get("year")) === date.year && (selectedDate === null || selectedDate === void 0 ? void 0 : selectedDate.get("date")) === date.day;
51
50
  };
51
+ var divideDaysIntoWeeks = function divideDaysIntoWeeks(data, weekSize) {
52
+ return Array.from({
53
+ length: Math.ceil(data.length / weekSize)
54
+ }, function (_, rowIndex) {
55
+ return data.slice(rowIndex * weekSize, (rowIndex + 1) * weekSize);
56
+ });
57
+ };
52
58
  var Calendar = function Calendar(_ref) {
53
59
  var selectedDate = _ref.selectedDate,
54
60
  innerDate = _ref.innerDate,
55
61
  onInnerDateChange = _ref.onInnerDateChange,
56
62
  onDaySelect = _ref.onDaySelect,
57
63
  today = _ref.today;
64
+ var id = (0, _react.useId)();
58
65
  var _useState = (0, _react.useState)(getDateToFocus(selectedDate, innerDate, today)),
59
66
  _useState2 = (0, _slicedToArray2["default"])(_useState, 2),
60
67
  dateToFocus = _useState2[0],
@@ -88,7 +95,7 @@ var Calendar = function Calendar(_ref) {
88
95
  (0, _react.useEffect)(function () {
89
96
  if (isFocusable) {
90
97
  var _document$getElementB;
91
- (_document$getElementB = document.getElementById("day_".concat(dateToFocus.get("date"), "_month").concat(dateToFocus.get("month")))) === null || _document$getElementB === void 0 ? void 0 : _document$getElementB.focus();
98
+ (_document$getElementB = document.getElementById("".concat(id, "_day_").concat(dateToFocus.get("date"), "_month").concat(dateToFocus.get("month")))) === null || _document$getElementB === void 0 ? void 0 : _document$getElementB.focus();
92
99
  setIsFocusable(false);
93
100
  }
94
101
  }, [dateToFocus, isFocusable]);
@@ -146,33 +153,40 @@ var Calendar = function Calendar(_ref) {
146
153
  break;
147
154
  }
148
155
  };
149
- return /*#__PURE__*/_react["default"].createElement(CalendarContainer, null, /*#__PURE__*/_react["default"].createElement(_Flex["default"], {
150
- alignItems: "center",
151
- justifyContent: "space-between"
156
+ return /*#__PURE__*/_react["default"].createElement(CalendarContainer, {
157
+ role: "grid"
158
+ }, /*#__PURE__*/_react["default"].createElement(CalendarHeaderRow, {
159
+ role: "row"
152
160
  }, weekDays.map(function (weekDay) {
153
161
  return /*#__PURE__*/_react["default"].createElement(WeekHeaderCell, {
154
- key: weekDay
162
+ key: weekDay,
163
+ role: "columnheader"
155
164
  }, weekDay);
156
- })), /*#__PURE__*/_react["default"].createElement(DayCellsContainer, {
157
- onBlur: handleOnBlur
158
- }, dayCells.map(function (date, index) {
159
- return /*#__PURE__*/_react["default"].createElement(DayCell, {
160
- onKeyDown: function onKeyDown(event) {
161
- return handleDayKeyboardEvent(event, date);
162
- },
163
- "aria-label": date.day,
164
- id: "day_".concat(date.day, "_month").concat(date.month),
165
- key: "day_".concat(index),
166
- onClick: function onClick() {
167
- return onDateClickHandler(date);
168
- },
169
- selected: isDaySelected(date, selectedDate),
170
- actualMonth: date.month === innerDate.get("month"),
171
- autoFocus: date.day === dateToFocus.get("date") && date.month === dateToFocus.get("month"),
172
- "aria-selected": isDaySelected(date, selectedDate),
173
- tabIndex: date.day === dateToFocus.get("date") && date.month === dateToFocus.get("month") ? 0 : -1,
174
- isCurrentDay: today.get("date") === date.day && today.get("month") === innerDate.get("month") && today.get("month") === date.month && today.get("year") === innerDate.get("year")
175
- }, date.day);
165
+ })), /*#__PURE__*/_react["default"].createElement(MonthContainer, {
166
+ onBlur: handleOnBlur,
167
+ role: "rowgroup"
168
+ }, divideDaysIntoWeeks(dayCells, weekDays.length).map(function (week, rowIndex) {
169
+ return /*#__PURE__*/_react["default"].createElement(WeekContainer, {
170
+ key: "".concat(id, "_week_").concat(rowIndex),
171
+ role: "row"
172
+ }, week.map(function (date, index) {
173
+ return /*#__PURE__*/_react["default"].createElement(DayCellButton, {
174
+ id: "".concat(id, "_day_").concat(date.day, "_month").concat(date.month),
175
+ role: "gridcell",
176
+ "aria-selected": isDaySelected(date, selectedDate),
177
+ onKeyDown: function onKeyDown(event) {
178
+ return handleDayKeyboardEvent(event, date);
179
+ },
180
+ onClick: function onClick() {
181
+ return onDateClickHandler(date);
182
+ },
183
+ selected: isDaySelected(date, selectedDate),
184
+ actualMonth: date.month === innerDate.get("month"),
185
+ autoFocus: date.day === dateToFocus.get("date") && date.month === dateToFocus.get("month"),
186
+ tabIndex: date.day === dateToFocus.get("date") && date.month === dateToFocus.get("month") ? 0 : -1,
187
+ isCurrentDay: today.get("date") === date.day && today.get("month") === innerDate.get("month") && today.get("month") === date.month && today.get("year") === innerDate.get("year")
188
+ }, date.day);
189
+ }));
176
190
  })));
177
191
  };
178
192
  var CalendarContainer = _styledComponents["default"].div(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n box-sizing: border-box;\n display: flex;\n flex-direction: column;\n justify-content: center;\n padding: 0px 8px 8px 8px;\n width: 292px;\n font-family: ", ";\n font-size: ", ";\n color: ", ";\n font-weight: ", ";\n"])), function (props) {
@@ -184,9 +198,11 @@ var CalendarContainer = _styledComponents["default"].div(_templateObject || (_te
184
198
  }, function (props) {
185
199
  return props.theme.dateInput.pickerFontWeight;
186
200
  });
187
- var WeekHeaderCell = _styledComponents["default"].span(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n align-items: center;\n justify-content: center;\n width: 36px;\n height: 36px;\n"])));
188
- var DayCellsContainer = _styledComponents["default"].div(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2["default"])(["\n box-sizing: border-box;\n display: flex;\n gap: 4px;\n flex-wrap: wrap;\n justify-content: space-between;\n"])));
189
- var DayCell = _styledComponents["default"].button(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2["default"])(["\n display: inline-flex;\n justify-content: center;\n align-items: center;\n width: 36px;\n height: 36px;\n padding: 0;\n border: none;\n border-radius: 50%;\n cursor: pointer;\n font-family: ", ";\n font-size: ", ";\n color: ", ";\n font-weight: ", ";\n\n &:focus {\n outline: ", " solid 2px;\n }\n &:hover {\n background-color: ", ";\n color: ", ";\n }\n &:active {\n background-color: ", ";\n color: ", ";\n }\n\n ", "\n background-color: ", ";\n color: ", ";\n"])), function (props) {
201
+ var CalendarHeaderRow = _styledComponents["default"].div(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n flex-direction: row;\n flex-wrap: nowrap;\n justify-content: space-between;\n align-items: center;\n"])));
202
+ var WeekHeaderCell = _styledComponents["default"].span(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n align-items: center;\n justify-content: center;\n width: 36px;\n height: 36px;\n"])));
203
+ var MonthContainer = _styledComponents["default"].div(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2["default"])(["\n box-sizing: border-box;\n display: flex;\n gap: 4px;\n flex-direction: column;\n justify-content: space-between;\n"])));
204
+ var WeekContainer = _styledComponents["default"].div(_templateObject5 || (_templateObject5 = (0, _taggedTemplateLiteral2["default"])(["\n box-sizing: border-box;\n display: flex;\n gap: 4px;\n justify-content: space-between;\n"])));
205
+ var DayCellButton = _styledComponents["default"].button(_templateObject6 || (_templateObject6 = (0, _taggedTemplateLiteral2["default"])(["\n display: inline-flex;\n justify-content: center;\n align-items: center;\n width: 36px;\n height: 36px;\n padding: 0;\n border: none;\n border-radius: 50%;\n cursor: pointer;\n font-family: ", ";\n font-size: ", ";\n color: ", ";\n font-weight: ", ";\n\n &:focus {\n outline: ", " solid 2px;\n }\n &:hover {\n background-color: ", ";\n color: ", ";\n }\n &:active {\n background-color: ", ";\n color: ", ";\n }\n\n ", "\n background-color: ", ";\n color: ", ";\n"])), function (props) {
190
206
  return props.theme.dateInput.pickerFontFamily;
191
207
  }, function (props) {
192
208
  return props.theme.dateInput.pickerFontSize;
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,229 @@
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 _axeHelper = require("../../test/accessibility/axe-helper.js");
11
+ var _DateInput = _interopRequireDefault(require("./DateInput"));
12
+ var _disabledRules = require("../../test/accessibility/rules/specific/date-input/disabledRules.js");
13
+ // Mocking DOMRect for Radix Primitive Popover
14
+ global.globalThis = global;
15
+ global.DOMRect = {
16
+ fromRect: function fromRect() {
17
+ return {
18
+ top: 0,
19
+ left: 0,
20
+ bottom: 0,
21
+ right: 0,
22
+ width: 0,
23
+ height: 0,
24
+ x: 0,
25
+ y: 0
26
+ };
27
+ }
28
+ };
29
+ global.ResizeObserver = /*#__PURE__*/function () {
30
+ function ResizeObserver() {
31
+ (0, _classCallCheck2["default"])(this, ResizeObserver);
32
+ }
33
+ return (0, _createClass2["default"])(ResizeObserver, [{
34
+ key: "observe",
35
+ value: function observe() {}
36
+ }, {
37
+ key: "unobserve",
38
+ value: function unobserve() {}
39
+ }, {
40
+ key: "disconnect",
41
+ value: function disconnect() {}
42
+ }]);
43
+ }();
44
+
45
+ // TODO: REMOVE
46
+
47
+ var disabledRules = {
48
+ rules: _disabledRules.disabledRules.reduce(function (rulesObj, rule) {
49
+ rulesObj[rule] = {
50
+ enabled: false
51
+ };
52
+ return rulesObj;
53
+ }, {})
54
+ };
55
+ describe("DateInput component accessibility tests", function () {
56
+ it("Should not have basic accessibility issues", /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee() {
57
+ var _render, baseElement, results;
58
+ return _regenerator["default"].wrap(function _callee$(_context) {
59
+ while (1) switch (_context.prev = _context.next) {
60
+ case 0:
61
+ // baseElement is needed when using React Portals
62
+ _render = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_DateInput["default"], {
63
+ label: "Example label",
64
+ helperText: "Help message",
65
+ defaultValue: "06-04-2007",
66
+ format: "dd/mm/yy",
67
+ name: "DateInput Name",
68
+ margin: "medium",
69
+ size: "medium",
70
+ placeholder: true,
71
+ clearable: true
72
+ })), baseElement = _render.baseElement;
73
+ _context.next = 3;
74
+ return (0, _axeHelper.axe)(baseElement, disabledRules);
75
+ case 3:
76
+ results = _context.sent;
77
+ expect(results).toHaveNoViolations();
78
+ case 5:
79
+ case "end":
80
+ return _context.stop();
81
+ }
82
+ }, _callee);
83
+ })));
84
+ it("Should not have basic accessibility issues for autocomplete mode", /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee2() {
85
+ var _render2, baseElement, results;
86
+ return _regenerator["default"].wrap(function _callee2$(_context2) {
87
+ while (1) switch (_context2.prev = _context2.next) {
88
+ case 0:
89
+ // baseElement is needed when using React Portals
90
+ _render2 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_DateInput["default"], {
91
+ label: "Example label",
92
+ helperText: "Help message",
93
+ defaultValue: "06-04-2007",
94
+ format: "dd/mm/yy",
95
+ name: "DateInput Name",
96
+ margin: "medium",
97
+ size: "medium",
98
+ placeholder: true,
99
+ autocomplete: "on"
100
+ })), baseElement = _render2.baseElement;
101
+ _context2.next = 3;
102
+ return (0, _axeHelper.axe)(baseElement, disabledRules);
103
+ case 3:
104
+ results = _context2.sent;
105
+ expect(results).toHaveNoViolations();
106
+ case 5:
107
+ case "end":
108
+ return _context2.stop();
109
+ }
110
+ }, _callee2);
111
+ })));
112
+ it("Should not have basic accessibility issues for optional mode", /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee3() {
113
+ var _render3, baseElement, results;
114
+ return _regenerator["default"].wrap(function _callee3$(_context3) {
115
+ while (1) switch (_context3.prev = _context3.next) {
116
+ case 0:
117
+ // baseElement is needed when using React Portals
118
+ _render3 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_DateInput["default"], {
119
+ label: "Example label",
120
+ helperText: "Help message",
121
+ defaultValue: "06-04-2007",
122
+ format: "dd/mm/yy",
123
+ name: "DateInput Name",
124
+ margin: "medium",
125
+ size: "medium",
126
+ placeholder: true,
127
+ optional: true
128
+ })), baseElement = _render3.baseElement;
129
+ _context3.next = 3;
130
+ return (0, _axeHelper.axe)(baseElement, disabledRules);
131
+ case 3:
132
+ results = _context3.sent;
133
+ expect(results).toHaveNoViolations();
134
+ case 5:
135
+ case "end":
136
+ return _context3.stop();
137
+ }
138
+ }, _callee3);
139
+ })));
140
+ it("Should not have basic accessibility issues for error mode", /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee4() {
141
+ var _render4, baseElement, results;
142
+ return _regenerator["default"].wrap(function _callee4$(_context4) {
143
+ while (1) switch (_context4.prev = _context4.next) {
144
+ case 0:
145
+ // baseElement is needed when using React Portals
146
+ _render4 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_DateInput["default"], {
147
+ label: "Example label",
148
+ helperText: "Help message",
149
+ defaultValue: "06-04-2007",
150
+ format: "dd/mm/yy",
151
+ name: "DateInput Name",
152
+ margin: "medium",
153
+ error: "Error message.",
154
+ size: "medium",
155
+ placeholder: true,
156
+ clearable: true
157
+ })), baseElement = _render4.baseElement;
158
+ _context4.next = 3;
159
+ return (0, _axeHelper.axe)(baseElement, disabledRules);
160
+ case 3:
161
+ results = _context4.sent;
162
+ expect(results).toHaveNoViolations();
163
+ case 5:
164
+ case "end":
165
+ return _context4.stop();
166
+ }
167
+ }, _callee4);
168
+ })));
169
+ it("Should not have basic accessibility issues for read-only mode", /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee5() {
170
+ var _render5, baseElement, results;
171
+ return _regenerator["default"].wrap(function _callee5$(_context5) {
172
+ while (1) switch (_context5.prev = _context5.next) {
173
+ case 0:
174
+ // baseElement is needed when using React Portals
175
+ _render5 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_DateInput["default"], {
176
+ label: "Example label",
177
+ helperText: "Help message",
178
+ defaultValue: "06-04-2007",
179
+ format: "dd/mm/yy",
180
+ name: "DateInput Name",
181
+ margin: "medium",
182
+ error: "Error message.",
183
+ size: "medium",
184
+ placeholder: true,
185
+ clearable: true,
186
+ readOnly: true
187
+ })), baseElement = _render5.baseElement;
188
+ _context5.next = 3;
189
+ return (0, _axeHelper.axe)(baseElement, disabledRules);
190
+ case 3:
191
+ results = _context5.sent;
192
+ expect(results).toHaveNoViolations();
193
+ case 5:
194
+ case "end":
195
+ return _context5.stop();
196
+ }
197
+ }, _callee5);
198
+ })));
199
+ it("Should not have basic accessibility issues for disabled mode", /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee6() {
200
+ var _render6, baseElement, results;
201
+ return _regenerator["default"].wrap(function _callee6$(_context6) {
202
+ while (1) switch (_context6.prev = _context6.next) {
203
+ case 0:
204
+ // baseElement is needed when using React Portals
205
+ _render6 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_DateInput["default"], {
206
+ label: "Example label",
207
+ helperText: "Help message",
208
+ defaultValue: "06-04-2007",
209
+ format: "dd/mm/yy",
210
+ name: "DateInput Name",
211
+ margin: "medium",
212
+ error: "Error message.",
213
+ size: "medium",
214
+ placeholder: true,
215
+ clearable: true,
216
+ disabled: true
217
+ })), baseElement = _render6.baseElement;
218
+ _context6.next = 3;
219
+ return (0, _axeHelper.axe)(baseElement, disabledRules);
220
+ case 3:
221
+ results = _context6.sent;
222
+ expect(results).toHaveNoViolations();
223
+ case 5:
224
+ case "end":
225
+ return _context6.stop();
226
+ }
227
+ }, _callee6);
228
+ })));
229
+ });
@@ -18,11 +18,9 @@ var _TextInput = _interopRequireDefault(require("../text-input/TextInput"));
18
18
  var _DatePicker = _interopRequireDefault(require("./DatePicker"));
19
19
  var Popover = _interopRequireWildcard(require("@radix-ui/react-popover"));
20
20
  var _customParseFormat = _interopRequireDefault(require("dayjs/plugin/customParseFormat"));
21
- var _uuid = require("uuid");
22
- var _Icons = require("./Icons");
23
- var _templateObject;
21
+ var _templateObject, _templateObject2;
24
22
  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); }
25
- 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; }
23
+ 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 && {}.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; }
26
24
  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; }
27
25
  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; }
28
26
  _dayjs["default"].extend(_customParseFormat["default"]);
@@ -77,17 +75,15 @@ var DxcDateInput = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref
77
75
  _useState4 = (0, _slicedToArray2["default"])(_useState3, 2),
78
76
  isOpen = _useState4[0],
79
77
  setIsOpen = _useState4[1];
80
- var _useState5 = (0, _react.useState)("date-picker-".concat((0, _uuid.v4)())),
81
- _useState6 = (0, _slicedToArray2["default"])(_useState5, 1),
82
- calendarId = _useState6[0];
83
- var _useState7 = (0, _react.useState)(getValueForPicker((_ref2 = value !== null && value !== void 0 ? value : defaultValue) !== null && _ref2 !== void 0 ? _ref2 : "", format)),
78
+ var calendarId = "date-picker-".concat((0, _react.useId)());
79
+ var _useState5 = (0, _react.useState)(getValueForPicker((_ref2 = value !== null && value !== void 0 ? value : defaultValue) !== null && _ref2 !== void 0 ? _ref2 : "", format)),
80
+ _useState6 = (0, _slicedToArray2["default"])(_useState5, 2),
81
+ dayjsDate = _useState6[0],
82
+ setDayjsDate = _useState6[1];
83
+ var _useState7 = (0, _react.useState)(innerValue || value ? !format.toUpperCase().includes("YYYY") && +getValueForPicker(value !== null && value !== void 0 ? value : innerValue, format).format("YY") < 68 ? 2000 : 1900 : undefined),
84
84
  _useState8 = (0, _slicedToArray2["default"])(_useState7, 2),
85
- dayjsDate = _useState8[0],
86
- setDayjsDate = _useState8[1];
87
- 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),
88
- _useState10 = (0, _slicedToArray2["default"])(_useState9, 2),
89
- lastValidYear = _useState10[0],
90
- setLastValidYear = _useState10[1];
85
+ lastValidYear = _useState8[0],
86
+ setLastValidYear = _useState8[1];
91
87
  var colorsTheme = (0, _useTheme["default"])();
92
88
  var translatedLabels = (0, _useTranslatedLabels["default"])();
93
89
  var dateRef = (0, _react.useRef)(null);
@@ -96,12 +92,14 @@ var DxcDateInput = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref
96
92
  }, [value, format, lastValidYear]);
97
93
  (0, _react.useEffect)(function () {
98
94
  if (!disabled) {
99
- var actionButtonRef = dateRef === null || dateRef === void 0 ? void 0 : dateRef.current.querySelector("[title='Open calendar']");
95
+ var actionButtonRef = dateRef === null || dateRef === void 0 ? void 0 : dateRef.current.querySelector("[title='Select date']");
100
96
  actionButtonRef === null || actionButtonRef === void 0 ? void 0 : actionButtonRef.setAttribute("aria-haspopup", true);
101
97
  actionButtonRef === null || actionButtonRef === void 0 ? void 0 : actionButtonRef.setAttribute("role", "combobox");
102
98
  actionButtonRef === null || actionButtonRef === void 0 ? void 0 : actionButtonRef.setAttribute("aria-expanded", isOpen);
103
99
  actionButtonRef === null || actionButtonRef === void 0 ? void 0 : actionButtonRef.setAttribute("aria-controls", calendarId);
104
- actionButtonRef === null || actionButtonRef === void 0 ? void 0 : actionButtonRef.setAttribute("aria-describedby", calendarId);
100
+ if (isOpen) {
101
+ actionButtonRef === null || actionButtonRef === void 0 ? void 0 : actionButtonRef.setAttribute("aria-describedby", calendarId);
102
+ }
105
103
  }
106
104
  }, [isOpen, disabled, calendarId]);
107
105
  var handleCalendarOnClick = function handleCalendarOnClick(newDate) {
@@ -166,16 +164,20 @@ var DxcDateInput = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref
166
164
  setIsOpen(false);
167
165
  };
168
166
  var handleDatePickerEscKeydown = function handleDatePickerEscKeydown(event) {
169
- event.preventDefault();
170
- closeCalendar();
171
- dateRef === null || dateRef === void 0 ? void 0 : dateRef.current.getElementsByTagName("input")[0].focus();
167
+ if (event.key === "Escape") {
168
+ event.preventDefault();
169
+ isOpen && event.stopPropagation();
170
+ closeCalendar();
171
+ dateRef === null || dateRef === void 0 ? void 0 : dateRef.current.getElementsByTagName("input")[0].focus();
172
+ }
172
173
  };
173
174
  var handleDatePickerOnBlur = function handleDatePickerOnBlur(event) {
174
175
  if (!(event !== null && event !== void 0 && event.currentTarget.contains(event.relatedTarget))) closeCalendar();
175
176
  };
176
177
  return /*#__PURE__*/_react["default"].createElement(_styledComponents.ThemeProvider, {
177
178
  theme: colorsTheme
178
- }, /*#__PURE__*/_react["default"].createElement("div", {
179
+ }, /*#__PURE__*/_react["default"].createElement(DateInputContainer, {
180
+ size: size,
179
181
  ref: ref
180
182
  }, /*#__PURE__*/_react["default"].createElement(Popover.Root, {
181
183
  open: isOpen
@@ -191,8 +193,8 @@ var DxcDateInput = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref
191
193
  placeholder: placeholder ? format.toUpperCase() : null,
192
194
  action: {
193
195
  onClick: openCalendar,
194
- icon: _Icons.calendarIcon,
195
- title: "Open calendar"
196
+ icon: "filled_calendar_today",
197
+ title: "Select date"
196
198
  },
197
199
  clearable: clearable,
198
200
  disabled: disabled,
@@ -211,7 +213,7 @@ var DxcDateInput = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref
211
213
  align: "end",
212
214
  "aria-modal": true,
213
215
  onBlur: handleDatePickerOnBlur,
214
- onEscapeKeyDown: handleDatePickerEscKeydown,
216
+ onKeyDown: handleDatePickerEscKeydown,
215
217
  avoidCollisions: false
216
218
  }, /*#__PURE__*/_react["default"].createElement(_DatePicker["default"], {
217
219
  id: calendarId,
@@ -220,4 +222,7 @@ var DxcDateInput = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref
220
222
  }))))));
221
223
  });
222
224
  var StyledPopoverContent = (0, _styledComponents["default"])(Popover.Content)(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n z-index: 2147483647;\n &:focus-visible {\n outline: none;\n }\n"])));
225
+ var DateInputContainer = _styledComponents["default"].div(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2["default"])(["\n ", "\n"])), function (props) {
226
+ return props.size == "fillParent" && "width: 100%;";
227
+ });
223
228
  var _default = exports["default"] = DxcDateInput;
@@ -1,5 +1,5 @@
1
1
  import React from "react";
2
- import { userEvent, within, fireEvent, screen } from "@storybook/testing-library";
2
+ import { userEvent, within, fireEvent, screen } from "@storybook/test";
3
3
  import DxcDateInput from "./DateInput";
4
4
  import DxcDatePicker from "./DatePicker";
5
5
  import YearPicker from "./YearPicker";
@@ -10,10 +10,22 @@ import dayjs from "dayjs";
10
10
  import useTheme from "../useTheme";
11
11
  import { ThemeProvider } from "styled-components";
12
12
  import { HalstackProvider } from "../HalstackContext";
13
+ import preview from "../../.storybook/preview";
14
+ import { disabledRules } from "../../test/accessibility/rules/specific/date-input/disabledRules";
13
15
 
14
16
  export default {
15
17
  title: "Date Input",
16
18
  component: DxcDateInput,
19
+ parameters: {
20
+ a11y: {
21
+ config: {
22
+ rules: [
23
+ ...disabledRules.map((ruleId) => ({ id: ruleId, enabled: false })),
24
+ ...preview?.parameters?.a11y?.config?.rules,
25
+ ],
26
+ },
27
+ },
28
+ },
17
29
  };
18
30
 
19
31
  const opinionatedTheme = {
@@ -41,13 +53,7 @@ const DateInputChromatic = () => (
41
53
  </ExampleContainer>
42
54
  <ExampleContainer>
43
55
  <Title title="Read only" theme="light" level={4} />
44
- <DxcDateInput
45
- label="Example label"
46
- helperText="Help message"
47
- defaultValue="06-04-2007"
48
- clearable
49
- readOnly
50
- />
56
+ <DxcDateInput label="Example label" helperText="Help message" defaultValue="06-04-2007" clearable readOnly />
51
57
  </ExampleContainer>
52
58
  <ExampleContainer>
53
59
  <Title title="Invalid" theme="light" level={4} />
@@ -202,15 +208,15 @@ const DatePickerButtonStates = () => {
202
208
  <ThemeProvider theme={colorsTheme}>
203
209
  <ExampleContainer pseudoState="pseudo-focus">
204
210
  <Title title="Isolated calendar focused" theme="light" level={4} />
205
- <DxcDatePicker date={dayjs("06-04-1950", "DD-MM-YYYY")} onDateSelect={() => {}} id="test-calendar" />
211
+ <DxcDatePicker date={dayjs("06-04-1950", "DD-MM-YYYY")} onDateSelect={() => {}} id="test-calendar1" />
206
212
  </ExampleContainer>
207
213
  <ExampleContainer pseudoState="pseudo-hover">
208
214
  <Title title="Isolated calendar hovered" theme="light" level={4} />
209
- <DxcDatePicker date={dayjs("06-04-1950", "DD-MM-YYYY")} onDateSelect={() => {}} id="test-calendar" />
215
+ <DxcDatePicker date={dayjs("06-04-1950", "DD-MM-YYYY")} onDateSelect={() => {}} id="test-calendar2" />
210
216
  </ExampleContainer>
211
217
  <ExampleContainer pseudoState="pseudo-active">
212
218
  <Title title="Isolated calendar actived" theme="light" level={4} />
213
- <DxcDatePicker date={dayjs("06-04-1950", "DD-MM-YYYY")} onDateSelect={() => {}} id="test-calendar" />
219
+ <DxcDatePicker date={dayjs("06-04-1950", "DD-MM-YYYY")} onDateSelect={() => {}} id="test-calendar3" />
214
220
  </ExampleContainer>
215
221
  </ThemeProvider>
216
222
  </>
@@ -220,7 +226,7 @@ const DatePickerButtonStates = () => {
220
226
  export const DatePickerStates = DatePickerButtonStates.bind({});
221
227
  DatePickerStates.play = async ({ canvasElement }) => {
222
228
  const canvas = within(canvasElement);
223
- const dateBtn = canvas.getAllByTitle("Open calendar")[0];
229
+ const dateBtn = canvas.getAllByTitle("Select date")[0];
224
230
  await userEvent.click(dateBtn);
225
231
  };
226
232
 
@@ -0,0 +1 @@
1
+ export {};