@dxc-technology/halstack-react 0.0.0-4e1277a → 0.0.0-4e3dbad

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 (363) hide show
  1. package/BackgroundColorContext.js +1 -1
  2. package/HalstackContext.d.ts +42 -5
  3. package/HalstackContext.js +28 -18
  4. package/accordion/Accordion.accessibility.test.d.ts +1 -0
  5. package/accordion/Accordion.accessibility.test.js +71 -0
  6. package/accordion/Accordion.js +16 -30
  7. package/accordion/Accordion.stories.tsx +7 -49
  8. package/accordion/Accordion.test.d.ts +1 -0
  9. package/accordion/Accordion.test.js +3 -3
  10. package/accordion/types.d.ts +1 -1
  11. package/accordion-group/AccordionGroup.accessibility.test.d.ts +1 -0
  12. package/accordion-group/AccordionGroup.accessibility.test.js +82 -0
  13. package/accordion-group/AccordionGroup.js +1 -1
  14. package/accordion-group/AccordionGroup.stories.tsx +23 -23
  15. package/accordion-group/AccordionGroup.test.d.ts +1 -0
  16. package/accordion-group/AccordionGroup.test.js +5 -9
  17. package/accordion-group/AccordionGroupAccordion.js +1 -1
  18. package/accordion-group/types.d.ts +1 -1
  19. package/action-icon/ActionIcon.accessibility.test.d.ts +1 -0
  20. package/action-icon/ActionIcon.accessibility.test.js +63 -0
  21. package/action-icon/ActionIcon.js +4 -3
  22. package/action-icon/ActionIcon.stories.tsx +3 -3
  23. package/action-icon/ActionIcon.test.d.ts +1 -0
  24. package/action-icon/ActionIcon.test.js +1 -1
  25. package/action-icon/types.d.ts +1 -1
  26. package/alert/Alert.accessibility.test.d.ts +1 -0
  27. package/alert/Alert.accessibility.test.js +95 -0
  28. package/alert/Alert.js +21 -72
  29. package/alert/Alert.test.d.ts +1 -0
  30. package/alert/Alert.test.js +1 -1
  31. package/badge/Badge.accessibility.test.d.ts +1 -0
  32. package/badge/Badge.accessibility.test.js +129 -0
  33. package/badge/Badge.js +6 -4
  34. package/badge/Badge.stories.tsx +11 -11
  35. package/badge/Badge.test.d.ts +1 -0
  36. package/badge/Badge.test.js +2 -2
  37. package/badge/types.d.ts +1 -1
  38. package/bar-chart/BarChart.d.ts +4 -0
  39. package/bar-chart/BarChart.js +152 -0
  40. package/bar-chart/BarChart.stories.tsx +281 -0
  41. package/bar-chart/BarChart.test.d.ts +1 -0
  42. package/bar-chart/BarChart.test.js +194 -0
  43. package/bar-chart/theme.d.ts +3 -0
  44. package/bar-chart/theme.js +31 -0
  45. package/bar-chart/types.d.ts +118 -0
  46. package/bar-chart/types.js +5 -0
  47. package/bleed/Bleed.stories.tsx +0 -1
  48. package/box/Box.accessibility.test.d.ts +1 -0
  49. package/box/Box.accessibility.test.js +33 -0
  50. package/box/Box.js +1 -1
  51. package/box/Box.test.d.ts +1 -0
  52. package/box/Box.test.js +1 -1
  53. package/breadcrumbs/Breadcrumbs.accessibility.test.d.ts +1 -0
  54. package/breadcrumbs/Breadcrumbs.accessibility.test.js +96 -0
  55. package/breadcrumbs/Breadcrumbs.d.ts +4 -0
  56. package/breadcrumbs/Breadcrumbs.js +79 -0
  57. package/breadcrumbs/Breadcrumbs.stories.tsx +194 -0
  58. package/breadcrumbs/Breadcrumbs.test.d.ts +1 -0
  59. package/breadcrumbs/Breadcrumbs.test.js +168 -0
  60. package/breadcrumbs/Item.d.ts +4 -0
  61. package/breadcrumbs/Item.js +52 -0
  62. package/breadcrumbs/dropdownTheme.d.ts +53 -0
  63. package/breadcrumbs/dropdownTheme.js +62 -0
  64. package/breadcrumbs/types.d.ts +40 -0
  65. package/breadcrumbs/types.js +5 -0
  66. package/bulleted-list/BulletedList.accessibility.test.d.ts +1 -0
  67. package/bulleted-list/BulletedList.accessibility.test.js +119 -0
  68. package/bulleted-list/BulletedList.js +7 -4
  69. package/bulleted-list/BulletedList.stories.tsx +1 -1
  70. package/button/Button.accessibility.test.d.ts +1 -0
  71. package/button/Button.accessibility.test.js +127 -0
  72. package/button/Button.js +2 -2
  73. package/button/Button.stories.tsx +3 -4
  74. package/button/Button.test.d.ts +1 -0
  75. package/button/Button.test.js +1 -1
  76. package/card/Card.accessibility.test.d.ts +1 -0
  77. package/card/Card.accessibility.test.js +36 -0
  78. package/card/Card.js +3 -2
  79. package/card/Card.stories.tsx +1 -1
  80. package/card/Card.test.d.ts +1 -0
  81. package/card/Card.test.js +1 -1
  82. package/checkbox/Checkbox.accessibility.test.d.ts +1 -0
  83. package/checkbox/Checkbox.accessibility.test.js +87 -0
  84. package/checkbox/Checkbox.js +10 -13
  85. package/checkbox/Checkbox.test.d.ts +1 -0
  86. package/checkbox/Checkbox.test.js +1 -1
  87. package/chip/Chip.accessibility.test.d.ts +1 -0
  88. package/chip/Chip.accessibility.test.js +67 -0
  89. package/chip/Chip.js +11 -6
  90. package/chip/Chip.stories.tsx +6 -25
  91. package/chip/Chip.test.d.ts +1 -0
  92. package/chip/Chip.test.js +5 -5
  93. package/common/coreTokens.d.ts +0 -1
  94. package/common/coreTokens.js +3 -4
  95. package/common/variables.d.ts +48 -5
  96. package/common/variables.js +110 -73
  97. package/container/Container.stories.tsx +3 -3
  98. package/container/types.d.ts +113 -11
  99. package/contextual-menu/ContextualMenu.accessibility.test.d.ts +1 -0
  100. package/contextual-menu/ContextualMenu.accessibility.test.js +98 -0
  101. package/contextual-menu/ContextualMenu.d.ts +3 -5
  102. package/contextual-menu/ContextualMenu.js +118 -53
  103. package/contextual-menu/ContextualMenu.stories.tsx +124 -75
  104. package/contextual-menu/ContextualMenu.test.d.ts +1 -0
  105. package/contextual-menu/ContextualMenu.test.js +200 -24
  106. package/contextual-menu/GroupItem.d.ts +4 -0
  107. package/contextual-menu/GroupItem.js +67 -0
  108. package/contextual-menu/ItemAction.d.ts +4 -0
  109. package/contextual-menu/ItemAction.js +88 -0
  110. package/contextual-menu/MenuItem.d.ts +4 -0
  111. package/contextual-menu/MenuItem.js +29 -0
  112. package/contextual-menu/SingleItem.d.ts +4 -0
  113. package/contextual-menu/SingleItem.js +38 -0
  114. package/contextual-menu/types.d.ts +54 -11
  115. package/date-input/Calendar.js +47 -31
  116. package/date-input/DateInput.accessibility.test.d.ts +1 -0
  117. package/date-input/DateInput.accessibility.test.js +229 -0
  118. package/date-input/DateInput.js +28 -23
  119. package/date-input/DateInput.stories.tsx +18 -12
  120. package/date-input/DateInput.test.d.ts +1 -0
  121. package/date-input/DateInput.test.js +39 -39
  122. package/date-input/DatePicker.js +13 -7
  123. package/date-input/YearPicker.js +10 -5
  124. package/dialog/Dialog.accessibility.test.d.ts +1 -0
  125. package/dialog/Dialog.accessibility.test.js +69 -0
  126. package/dialog/Dialog.js +9 -20
  127. package/dialog/Dialog.stories.tsx +8 -4
  128. package/dialog/Dialog.test.d.ts +1 -0
  129. package/dialog/Dialog.test.js +112 -49
  130. package/divider/Divider.accessibility.test.d.ts +1 -0
  131. package/divider/Divider.accessibility.test.js +33 -0
  132. package/divider/Divider.stories.tsx +2 -1
  133. package/divider/Divider.test.d.ts +1 -0
  134. package/dropdown/Dropdown.accessibility.test.d.ts +1 -0
  135. package/dropdown/Dropdown.accessibility.test.js +183 -0
  136. package/dropdown/Dropdown.js +31 -66
  137. package/dropdown/Dropdown.stories.tsx +16 -27
  138. package/dropdown/Dropdown.test.d.ts +1 -0
  139. package/dropdown/Dropdown.test.js +101 -72
  140. package/dropdown/DropdownMenu.js +4 -4
  141. package/dropdown/DropdownMenuItem.js +8 -4
  142. package/dropdown/types.d.ts +2 -4
  143. package/file-input/FileInput.accessibility.test.d.ts +1 -0
  144. package/file-input/FileInput.accessibility.test.js +167 -0
  145. package/file-input/FileInput.js +6 -47
  146. package/file-input/FileInput.test.d.ts +1 -0
  147. package/file-input/FileInput.test.js +51 -106
  148. package/file-input/FileItem.js +18 -28
  149. package/file-input/types.d.ts +0 -4
  150. package/footer/Footer.accessibility.test.d.ts +1 -0
  151. package/footer/Footer.accessibility.test.js +125 -0
  152. package/footer/Footer.js +8 -6
  153. package/footer/Footer.stories.tsx +40 -3
  154. package/footer/Footer.test.d.ts +1 -0
  155. package/footer/Footer.test.js +1 -1
  156. package/footer/Icons.js +2 -30
  157. package/footer/types.d.ts +1 -1
  158. package/grid/Grid.stories.tsx +3 -1
  159. package/header/Header.accessibility.test.d.ts +1 -0
  160. package/header/Header.accessibility.test.js +94 -0
  161. package/header/Header.js +12 -22
  162. package/header/Header.stories.tsx +17 -1
  163. package/header/Header.test.d.ts +1 -0
  164. package/header/Header.test.js +1 -1
  165. package/header/Icons.js +1 -6
  166. package/heading/Heading.accessibility.test.d.ts +1 -0
  167. package/heading/Heading.accessibility.test.js +33 -0
  168. package/heading/Heading.js +1 -1
  169. package/heading/Heading.test.d.ts +1 -0
  170. package/heading/Heading.test.js +1 -14
  171. package/icon/Icon.accessibility.test.d.ts +1 -0
  172. package/icon/Icon.accessibility.test.js +30 -0
  173. package/icon/Icon.js +1 -1
  174. package/icon/Icon.stories.tsx +6 -4
  175. package/image/Image.accessibility.test.d.ts +1 -0
  176. package/image/Image.accessibility.test.js +56 -0
  177. package/image/Image.js +1 -1
  178. package/layout/ApplicationLayout.js +9 -6
  179. package/layout/Icons.d.ts +0 -1
  180. package/layout/Icons.js +1 -11
  181. package/link/Link.accessibility.test.d.ts +1 -0
  182. package/link/Link.accessibility.test.js +108 -0
  183. package/link/Link.js +8 -6
  184. package/link/Link.stories.tsx +4 -4
  185. package/link/Link.test.d.ts +1 -0
  186. package/link/Link.test.js +1 -1
  187. package/link/types.d.ts +1 -1
  188. package/main.d.ts +3 -1
  189. package/main.js +15 -1
  190. package/nav-tabs/NavTabs.accessibility.test.d.ts +1 -0
  191. package/nav-tabs/NavTabs.accessibility.test.js +44 -0
  192. package/nav-tabs/NavTabs.js +19 -4
  193. package/nav-tabs/NavTabs.stories.tsx +41 -23
  194. package/nav-tabs/NavTabs.test.d.ts +1 -0
  195. package/nav-tabs/NavTabs.test.js +10 -9
  196. package/nav-tabs/Tab.js +17 -18
  197. package/nav-tabs/types.d.ts +1 -1
  198. package/number-input/NumberInput.accessibility.test.d.ts +1 -0
  199. package/number-input/NumberInput.accessibility.test.js +227 -0
  200. package/number-input/NumberInput.js +6 -3
  201. package/number-input/NumberInput.stories.tsx +11 -16
  202. package/number-input/NumberInput.test.d.ts +1 -0
  203. package/number-input/NumberInput.test.js +6 -7
  204. package/package.json +34 -28
  205. package/paginator/Paginator.accessibility.test.d.ts +1 -0
  206. package/paginator/Paginator.accessibility.test.js +78 -0
  207. package/paginator/Paginator.js +13 -10
  208. package/paginator/Paginator.test.d.ts +1 -0
  209. package/paginator/Paginator.test.js +2 -3
  210. package/paragraph/Paragraph.accessibility.test.d.ts +1 -0
  211. package/paragraph/Paragraph.accessibility.test.js +28 -0
  212. package/password-input/PasswordInput.accessibility.test.d.ts +1 -0
  213. package/password-input/PasswordInput.accessibility.test.js +152 -0
  214. package/password-input/PasswordInput.js +11 -8
  215. package/password-input/PasswordInput.stories.tsx +10 -1
  216. package/password-input/PasswordInput.test.d.ts +1 -0
  217. package/password-input/PasswordInput.test.js +6 -7
  218. package/progress-bar/ProgressBar.accessibility.test.d.ts +1 -0
  219. package/progress-bar/ProgressBar.accessibility.test.js +35 -0
  220. package/progress-bar/ProgressBar.js +6 -4
  221. package/progress-bar/ProgressBar.test.d.ts +1 -0
  222. package/progress-bar/ProgressBar.test.js +1 -1
  223. package/quick-nav/QuickNav.accessibility.test.d.ts +1 -0
  224. package/quick-nav/QuickNav.accessibility.test.js +57 -0
  225. package/quick-nav/QuickNav.js +1 -1
  226. package/radio-group/Radio.js +6 -9
  227. package/radio-group/RadioGroup.accessibility.test.d.ts +1 -0
  228. package/radio-group/RadioGroup.accessibility.test.js +97 -0
  229. package/radio-group/RadioGroup.js +14 -16
  230. package/radio-group/RadioGroup.test.d.ts +1 -0
  231. package/radio-group/RadioGroup.test.js +3 -5
  232. package/resultset-table/ResultsetTable.accessibility.test.d.ts +1 -0
  233. package/resultset-table/ResultsetTable.accessibility.test.js +284 -0
  234. package/resultset-table/ResultsetTable.d.ts +1 -1
  235. package/resultset-table/ResultsetTable.js +47 -15
  236. package/resultset-table/ResultsetTable.stories.tsx +19 -3
  237. package/resultset-table/ResultsetTable.test.d.ts +1 -0
  238. package/resultset-table/ResultsetTable.test.js +111 -32
  239. package/resultset-table/types.d.ts +41 -13
  240. package/select/Listbox.d.ts +3 -3
  241. package/select/Listbox.js +33 -29
  242. package/select/Option.d.ts +3 -3
  243. package/select/Option.js +21 -15
  244. package/select/Select.accessibility.test.d.ts +1 -0
  245. package/select/Select.accessibility.test.js +227 -0
  246. package/select/Select.js +85 -192
  247. package/select/Select.stories.tsx +74 -117
  248. package/select/Select.test.d.ts +1 -0
  249. package/select/Select.test.js +348 -550
  250. package/select/selectUtils.d.ts +41 -0
  251. package/select/selectUtils.js +129 -0
  252. package/select/types.d.ts +1 -1
  253. package/sidenav/Sidenav.accessibility.test.d.ts +1 -0
  254. package/sidenav/Sidenav.accessibility.test.js +59 -0
  255. package/sidenav/Sidenav.js +16 -12
  256. package/sidenav/Sidenav.stories.tsx +5 -10
  257. package/sidenav/Sidenav.test.d.ts +1 -0
  258. package/sidenav/Sidenav.test.js +1 -1
  259. package/sidenav/types.d.ts +2 -2
  260. package/slider/Slider.accessibility.test.d.ts +1 -0
  261. package/slider/Slider.accessibility.test.js +103 -0
  262. package/slider/Slider.js +11 -13
  263. package/slider/Slider.stories.tsx +180 -0
  264. package/slider/Slider.test.d.ts +1 -0
  265. package/slider/Slider.test.js +13 -11
  266. package/spinner/Spinner.accessibility.test.d.ts +1 -0
  267. package/spinner/Spinner.accessibility.test.js +96 -0
  268. package/spinner/Spinner.d.ts +1 -1
  269. package/spinner/Spinner.js +32 -47
  270. package/spinner/Spinner.test.d.ts +1 -0
  271. package/spinner/Spinner.test.js +1 -1
  272. package/status-light/StatusLight.accessibility.test.d.ts +1 -0
  273. package/status-light/StatusLight.accessibility.test.js +157 -0
  274. package/status-light/StatusLight.test.d.ts +1 -0
  275. package/status-light/StatusLight.test.js +1 -1
  276. package/switch/Switch.accessibility.test.d.ts +1 -0
  277. package/switch/Switch.accessibility.test.js +98 -0
  278. package/switch/Switch.js +6 -9
  279. package/switch/Switch.stories.tsx +12 -0
  280. package/switch/Switch.test.d.ts +1 -0
  281. package/switch/Switch.test.js +1 -1
  282. package/table/Table.accessibility.test.d.ts +1 -0
  283. package/table/Table.accessibility.test.js +92 -0
  284. package/table/Table.js +2 -11
  285. package/table/Table.stories.tsx +15 -10
  286. package/table/Table.test.d.ts +1 -0
  287. package/table/Table.test.js +2 -4
  288. package/table/types.d.ts +1 -15
  289. package/tabs/Tab.js +6 -5
  290. package/tabs/Tabs.accessibility.test.d.ts +1 -0
  291. package/tabs/Tabs.accessibility.test.js +56 -0
  292. package/tabs/Tabs.js +9 -20
  293. package/tabs/Tabs.stories.tsx +7 -3
  294. package/tabs/Tabs.test.d.ts +1 -0
  295. package/tabs/Tabs.test.js +20 -38
  296. package/tabs/types.d.ts +2 -2
  297. package/tag/Tag.accessibility.test.d.ts +1 -0
  298. package/tag/Tag.accessibility.test.js +69 -0
  299. package/tag/Tag.js +7 -7
  300. package/tag/Tag.stories.tsx +5 -8
  301. package/tag/Tag.test.d.ts +1 -0
  302. package/tag/Tag.test.js +5 -13
  303. package/tag/types.d.ts +2 -2
  304. package/text-input/Suggestion.js +1 -1
  305. package/text-input/Suggestions.js +17 -7
  306. package/text-input/TextInput.accessibility.test.d.ts +1 -0
  307. package/text-input/TextInput.accessibility.test.js +320 -0
  308. package/text-input/TextInput.js +56 -73
  309. package/text-input/TextInput.stories.tsx +20 -8
  310. package/text-input/TextInput.test.d.ts +1 -0
  311. package/text-input/TextInput.test.js +2 -3
  312. package/textarea/Textarea.accessibility.test.d.ts +1 -0
  313. package/textarea/Textarea.accessibility.test.js +155 -0
  314. package/textarea/Textarea.js +14 -13
  315. package/textarea/Textarea.test.d.ts +1 -0
  316. package/textarea/Textarea.test.js +1 -1
  317. package/toggle-group/ToggleGroup.accessibility.test.d.ts +1 -0
  318. package/toggle-group/ToggleGroup.accessibility.test.js +107 -0
  319. package/toggle-group/ToggleGroup.js +10 -12
  320. package/toggle-group/ToggleGroup.stories.tsx +4 -4
  321. package/toggle-group/ToggleGroup.test.d.ts +1 -0
  322. package/toggle-group/ToggleGroup.test.js +1 -1
  323. package/toggle-group/types.d.ts +2 -2
  324. package/tooltip/Tooltip.accessibility.test.d.ts +1 -0
  325. package/tooltip/Tooltip.accessibility.test.js +144 -0
  326. package/tooltip/Tooltip.d.ts +4 -0
  327. package/tooltip/Tooltip.js +50 -0
  328. package/tooltip/Tooltip.stories.tsx +111 -0
  329. package/tooltip/Tooltip.test.d.ts +1 -0
  330. package/tooltip/Tooltip.test.js +112 -0
  331. package/tooltip/types.d.ts +16 -0
  332. package/tooltip/types.js +5 -0
  333. package/typography/Typography.accessibility.test.d.ts +1 -0
  334. package/typography/Typography.accessibility.test.js +339 -0
  335. package/typography/Typography.stories.tsx +1 -3
  336. package/typography/Typography.test.js +23 -0
  337. package/useTheme.d.ts +31 -5
  338. package/useTranslatedLabels.d.ts +11 -0
  339. package/utils/BaseTypography.js +45 -41
  340. package/utils/FocusLock.js +3 -2
  341. package/utils/useWidth.d.ts +2 -0
  342. package/utils/useWidth.js +30 -0
  343. package/wizard/Wizard.accessibility.test.d.ts +1 -0
  344. package/wizard/Wizard.accessibility.test.js +55 -0
  345. package/wizard/Wizard.js +14 -25
  346. package/wizard/Wizard.stories.tsx +20 -1
  347. package/wizard/Wizard.test.d.ts +1 -0
  348. package/wizard/Wizard.test.js +1 -1
  349. package/wizard/types.d.ts +1 -1
  350. package/contextual-menu/MenuItemAction.d.ts +0 -4
  351. package/contextual-menu/MenuItemAction.js +0 -46
  352. package/date-input/Icons.d.ts +0 -6
  353. package/date-input/Icons.js +0 -58
  354. package/paginator/Icons.d.ts +0 -5
  355. package/paginator/Icons.js +0 -40
  356. package/password-input/Icons.d.ts +0 -6
  357. package/password-input/Icons.js +0 -35
  358. package/select/Icons.d.ts +0 -10
  359. package/select/Icons.js +0 -89
  360. package/sidenav/Icons.d.ts +0 -7
  361. package/sidenav/Icons.js +0 -47
  362. package/text-input/Icons.d.ts +0 -8
  363. package/text-input/Icons.js +0 -56
@@ -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 {};
@@ -9,7 +9,7 @@ var _react = _interopRequireDefault(require("react"));
9
9
  var _react2 = require("@testing-library/react");
10
10
  var _userEvent = _interopRequireDefault(require("@testing-library/user-event"));
11
11
  var _dayjs = _interopRequireDefault(require("dayjs"));
12
- var _DateInput = _interopRequireDefault(require("./DateInput.tsx"));
12
+ var _DateInput = _interopRequireDefault(require("./DateInput"));
13
13
  // Mocking DOMRect for Radix Primitive Popover
14
14
  global.globalThis = global;
15
15
  global.DOMRect = {
@@ -28,7 +28,7 @@ global.ResizeObserver = /*#__PURE__*/function () {
28
28
  function ResizeObserver() {
29
29
  (0, _classCallCheck2["default"])(this, ResizeObserver);
30
30
  }
31
- (0, _createClass2["default"])(ResizeObserver, [{
31
+ return (0, _createClass2["default"])(ResizeObserver, [{
32
32
  key: "observe",
33
33
  value: function observe() {}
34
34
  }, {
@@ -38,7 +38,6 @@ global.ResizeObserver = /*#__PURE__*/function () {
38
38
  key: "disconnect",
39
39
  value: function disconnect() {}
40
40
  }]);
41
- return ResizeObserver;
42
41
  }();
43
42
  describe("DateInput component tests", function () {
44
43
  test("Renders with correct label, helper text, optional, placeholder and clearable action", /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee() {
@@ -214,7 +213,7 @@ describe("DateInput component tests", function () {
214
213
  _context6.next = 5;
215
214
  return _userEvent["default"].click(calendarAction);
216
215
  case 5:
217
- expect(document.activeElement === getAllByText(d.get("date")).length === 2 && +d.get("date") > 20 ? getAllByText(d.get("date"))[1] : getAllByText(d.get("date"))[0]).toBeTruthy();
216
+ expect(document.activeElement === (getAllByText(d.get("date")).length === 2 && +d.get("date") > 20 ? getAllByText(d.get("date"))[1] : getAllByText(d.get("date"))[0])).toBeTruthy();
218
217
  expect(getByText(d.format("MMMM YYYY"))).toBeTruthy();
219
218
  case 7:
220
219
  case "end":
@@ -286,7 +285,7 @@ describe("DateInput component tests", function () {
286
285
  _context9.next = 11;
287
286
  return _userEvent["default"].click(calendarAction);
288
287
  case 11:
289
- expect(document.activeElement === getAllByText(d.get("date")).length === 2 && +d.get("date") > 20 ? getAllByText(d.get("date"))[1] : getAllByText(d.get("date"))[0]).toBeTruthy();
288
+ expect(document.activeElement === (getAllByText(d.get("date")).length === 2 && +d.get("date") > 20 ? getAllByText(d.get("date"))[1] : getAllByText(d.get("date"))[0])).toBeTruthy();
290
289
  expect(getByText(d.format("MMMM YYYY"))).toBeTruthy();
291
290
  case 13:
292
291
  case "end":
@@ -308,7 +307,7 @@ describe("DateInput component tests", function () {
308
307
  _context10.next = 5;
309
308
  return _userEvent["default"].click(calendarAction);
310
309
  case 5:
311
- dayButton = getAllByText("10")[0].closest("button");
310
+ dayButton = getAllByText("10")[0];
312
311
  _react2.fireEvent.click(dayButton);
313
312
  d = (0, _dayjs["default"])();
314
313
  d = d.set("date", 10);
@@ -374,7 +373,7 @@ describe("DateInput component tests", function () {
374
373
  _context12.next = 5;
375
374
  return _userEvent["default"].click(calendarAction);
376
375
  case 5:
377
- dayButton = getAllByText("31")[0].closest("button");
376
+ dayButton = getAllByText("31")[0];
378
377
  _react2.fireEvent.click(dayButton);
379
378
  d = (0, _dayjs["default"])("10-08-2021", "DD-MM-YYYY", true);
380
379
  d = d.set("date", 31).set("month", 6);
@@ -444,31 +443,31 @@ describe("DateInput component tests", function () {
444
443
  _context14.next = 7;
445
444
  return _userEvent["default"].click(calendarAction);
446
445
  case 7:
447
- expect(document.activeElement === getAllByText("1")[0].closest("button")).toBeTruthy();
448
- _react2.fireEvent.keyDown(getAllByText("1")[0].closest("button"), {
446
+ expect(document.activeElement === getAllByText("1")[0]).toBeTruthy();
447
+ _react2.fireEvent.keyDown(getAllByText("1")[0], {
449
448
  key: "ArrowRight",
450
449
  code: "ArrowRight",
451
450
  keyCode: 39,
452
451
  charCode: 39
453
452
  });
454
- expect(document.activeElement === getAllByText("2")[0].closest("button")).toBeTruthy();
455
- _react2.fireEvent.keyDown(getAllByText("2")[0].closest("button"), {
453
+ expect(document.activeElement === getAllByText("2")[0]).toBeTruthy();
454
+ _react2.fireEvent.keyDown(getAllByText("2")[0], {
456
455
  key: "PageUp",
457
456
  code: "PageUp",
458
457
  keyCode: 33,
459
458
  charCode: 33
460
459
  });
461
- expect(document.activeElement === getAllByText("2")[0].closest("button")).toBeTruthy();
460
+ expect(document.activeElement === getAllByText("2")[0]).toBeTruthy();
462
461
  expect(getByText("December 2009")).toBeTruthy();
463
- _react2.fireEvent.keyDown(getAllByText("2")[0].closest("button"), {
462
+ _react2.fireEvent.keyDown(getAllByText("2")[0], {
464
463
  key: "PageDown",
465
464
  code: "PageDown",
466
465
  keyCode: 34,
467
466
  charCode: 34
468
467
  });
469
- expect(document.activeElement === getAllByText("2")[0].closest("button")).toBeTruthy();
468
+ expect(document.activeElement === getAllByText("2")[0]).toBeTruthy();
470
469
  expect(getByText("January 2010")).toBeTruthy();
471
- _react2.fireEvent.keyDown(getAllByText("2")[0].closest("button"), {
470
+ _react2.fireEvent.keyDown(getAllByText("2")[0], {
472
471
  key: "PageDown",
473
472
  code: "PageDown",
474
473
  keyCode: 34,
@@ -476,7 +475,7 @@ describe("DateInput component tests", function () {
476
475
  shiftKey: true
477
476
  });
478
477
  expect(getByText("January 2011")).toBeTruthy();
479
- _react2.fireEvent.keyDown(getAllByText("2")[0].closest("button"), {
478
+ _react2.fireEvent.keyDown(getAllByText("2")[0], {
480
479
  key: "PageUp",
481
480
  code: "PageUp",
482
481
  keyCode: 33,
@@ -484,14 +483,14 @@ describe("DateInput component tests", function () {
484
483
  shiftKey: true
485
484
  });
486
485
  expect(getByText("January 2010")).toBeTruthy();
487
- expect(document.activeElement === getAllByText("2")[0].closest("button")).toBeTruthy();
488
- _react2.fireEvent.click(getAllByText("2")[0].closest("button"), {
486
+ expect(document.activeElement === getAllByText("2")[0]).toBeTruthy();
487
+ _react2.fireEvent.click(getAllByText("2")[0], {
489
488
  key: " ",
490
489
  code: "Space",
491
490
  keyCode: 32,
492
491
  charCode: 32
493
492
  });
494
- expect(getAllByText("2")[0].closest("button").getAttribute("aria-selected")).toBe("true");
493
+ expect(getAllByText("2")[0].getAttribute("aria-selected")).toBe("true");
495
494
  _react2.fireEvent.keyDown(document, {
496
495
  key: "Escape",
497
496
  code: "Escape",
@@ -518,42 +517,42 @@ describe("DateInput component tests", function () {
518
517
  _context15.next = 7;
519
518
  return _userEvent["default"].click(calendarAction);
520
519
  case 7:
521
- expect(document.activeElement === getAllByText("1")[0].closest("button")).toBeTruthy();
522
- _react2.fireEvent.keyDown(getAllByText("1")[0].closest("button"), {
520
+ expect(document.activeElement === getAllByText("1")[0]).toBeTruthy();
521
+ _react2.fireEvent.keyDown(getAllByText("1")[0], {
523
522
  key: "ArrowDown",
524
523
  code: "ArrowDown",
525
524
  keyCode: 40,
526
525
  charCode: 40
527
526
  });
528
- expect(document.activeElement === getAllByText("8")[0].closest("button")).toBeTruthy();
529
- _react2.fireEvent.keyDown(getAllByText("8")[0].closest("button"), {
527
+ expect(document.activeElement === getAllByText("8")[0]).toBeTruthy();
528
+ _react2.fireEvent.keyDown(getAllByText("8")[0], {
530
529
  key: "ArrowDown",
531
530
  code: "ArrowDown",
532
531
  keyCode: 40,
533
532
  charCode: 40
534
533
  });
535
- expect(document.activeElement === getAllByText("15")[0].closest("button")).toBeTruthy();
536
- _react2.fireEvent.keyDown(getAllByText("15")[0].closest("button"), {
534
+ expect(document.activeElement === getAllByText("15")[0]).toBeTruthy();
535
+ _react2.fireEvent.keyDown(getAllByText("15")[0], {
537
536
  key: "ArrowUp",
538
537
  code: "ArrowUp",
539
538
  keyCode: 38,
540
539
  charCode: 38
541
540
  });
542
- expect(document.activeElement === getAllByText("8")[0].closest("button")).toBeTruthy();
543
- _react2.fireEvent.keyDown(getAllByText("8")[0].closest("button"), {
541
+ expect(document.activeElement === getAllByText("8")[0]).toBeTruthy();
542
+ _react2.fireEvent.keyDown(getAllByText("8")[0], {
544
543
  key: "End",
545
544
  code: "End",
546
545
  keyCode: 35,
547
546
  charCode: 35
548
547
  });
549
- expect(document.activeElement === getAllByText("10")[0].closest("button")).toBeTruthy();
550
- _react2.fireEvent.keyDown(getAllByText("10")[0].closest("button"), {
548
+ expect(document.activeElement === getAllByText("10")[0]).toBeTruthy();
549
+ _react2.fireEvent.keyDown(getAllByText("10")[0], {
551
550
  key: "Home",
552
551
  code: "Home",
553
552
  keyCode: 36,
554
553
  charCode: 36
555
554
  });
556
- _react2.fireEvent.keyDown(getAllByText("10")[0].closest("button"), {
555
+ _react2.fireEvent.keyDown(getAllByText("10")[0], {
557
556
  key: " ",
558
557
  code: "Space",
559
558
  keyCode: 32,
@@ -687,7 +686,7 @@ describe("DateInput component tests", function () {
687
686
  });
688
687
  });
689
688
  test("Disabled date input (calendar action must be shown but not clickable)", /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee16() {
690
- var _render22, getByRole, queryByText, calendarAction, d, options;
689
+ var _render22, getByRole, queryByText, calendarAction, d, options, input;
691
690
  return _regenerator["default"].wrap(function _callee16$(_context16) {
692
691
  while (1) switch (_context16.prev = _context16.next) {
693
692
  case 0:
@@ -701,12 +700,13 @@ describe("DateInput component tests", function () {
701
700
  month: "short",
702
701
  day: "numeric"
703
702
  };
704
- expect(getByRole("textbox").disabled).toBeTruthy();
705
- _context16.next = 7;
703
+ input = getByRole("textbox");
704
+ expect(input.disabled).toBeTruthy();
705
+ _context16.next = 8;
706
706
  return _userEvent["default"].click(calendarAction);
707
- case 7:
708
- expect(queryByText(d.toLocaleString("en-US", options))).toBeFalsy();
709
707
  case 8:
708
+ expect(queryByText(d.toLocaleString("en-US", options))).toBeFalsy();
709
+ case 9:
710
710
  case "end":
711
711
  return _context16.stop();
712
712
  }
@@ -727,16 +727,16 @@ describe("DateInput component tests", function () {
727
727
  calendarAction = getByRole("combobox");
728
728
  expect(calendarAction.getAttribute("aria-autocomplete")).toBeNull();
729
729
  expect(calendarAction.getAttribute("aria-controls")).toBeTruthy();
730
- expect(calendarAction.getAttribute("aria-describedby")).toBeTruthy();
731
- expect(calendarAction.getAttribute("aria-describedby") === calendarAction.getAttribute("aria-controls")).toBeTruthy();
730
+ expect(calendarAction.getAttribute("aria-describedby")).toBeFalsy();
732
731
  expect(calendarAction.getAttribute("aria-expanded")).toBe("false");
733
- _context17.next = 13;
732
+ _context17.next = 12;
734
733
  return _userEvent["default"].click(calendarAction);
735
- case 13:
734
+ case 12:
736
735
  datePicker = getByRole("dialog");
737
736
  expect(datePicker.getAttribute("aria-modal")).toBe("true");
738
737
  expect(calendarAction.getAttribute("aria-expanded")).toBe("true");
739
738
  expect(document.getElementById(calendarAction.getAttribute("aria-describedby"))).toBeTruthy();
739
+ expect(calendarAction.getAttribute("aria-describedby") === calendarAction.getAttribute("aria-controls")).toBeTruthy();
740
740
  _context17.next = 19;
741
741
  return _userEvent["default"].type(calendarAction, "{esc}");
742
742
  case 19:
@@ -14,10 +14,10 @@ var _styledComponents = _interopRequireDefault(require("styled-components"));
14
14
  var _Calendar = _interopRequireDefault(require("./Calendar"));
15
15
  var _YearPicker = _interopRequireDefault(require("./YearPicker"));
16
16
  var _useTranslatedLabels = _interopRequireDefault(require("../useTranslatedLabels"));
17
- var _Icons = require("./Icons");
17
+ var _Icon = _interopRequireDefault(require("../icon/Icon"));
18
18
  var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5;
19
19
  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); }
20
- 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; }
20
+ 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; }
21
21
  var today = (0, _dayjs["default"])();
22
22
  var DxcDatePicker = function DxcDatePicker(_ref) {
23
23
  var date = _ref.date,
@@ -52,20 +52,26 @@ var DxcDatePicker = function DxcDatePicker(_ref) {
52
52
  onClick: function onClick() {
53
53
  return handleMonthChange(innerDate.set("month", innerDate.get("month") - 1));
54
54
  }
55
- }, _Icons.leftCaret), /*#__PURE__*/_react["default"].createElement(HeaderYearTrigger, {
55
+ }, /*#__PURE__*/_react["default"].createElement(_Icon["default"], {
56
+ icon: "keyboard_arrow_left"
57
+ })), /*#__PURE__*/_react["default"].createElement(HeaderYearTrigger, {
56
58
  "aria-live": "polite",
57
59
  onClick: function onClick() {
58
60
  return setContent(function (content) {
59
61
  return content === "yearPicker" ? "calendar" : "yearPicker";
60
62
  });
61
63
  }
62
- }, /*#__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, {
64
+ }, /*#__PURE__*/_react["default"].createElement(HeaderYearTriggerLabel, null, translatedLabels.calendar.months[innerDate.get("month")], " ", innerDate.format("YYYY")), /*#__PURE__*/_react["default"].createElement(_Icon["default"], {
65
+ icon: content === "yearPicker" ? "arrow_drop_up" : "arrow_drop_down"
66
+ })), /*#__PURE__*/_react["default"].createElement(HeaderButton, {
63
67
  "aria-label": translatedLabels.calendar.nextMonthTitle,
64
68
  title: translatedLabels.calendar.nextMonthTitle,
65
69
  onClick: function onClick() {
66
70
  return handleMonthChange(innerDate.set("month", innerDate.get("month") + 1));
67
71
  }
68
- }, _Icons.rightCaret)), content === "calendar" && /*#__PURE__*/_react["default"].createElement(_Calendar["default"], {
72
+ }, /*#__PURE__*/_react["default"].createElement(_Icon["default"], {
73
+ icon: "keyboard_arrow_right"
74
+ }))), content === "calendar" && /*#__PURE__*/_react["default"].createElement(_Calendar["default"], {
69
75
  innerDate: innerDate,
70
76
  selectedDate: selectedDate,
71
77
  onInnerDateChange: setInnerDate,
@@ -91,7 +97,7 @@ var DatePicker = _styledComponents["default"].div(_templateObject || (_templateO
91
97
  return props.theme.dateInput.pickerFontWeight;
92
98
  });
93
99
  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"])));
94
- 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) {
100
+ 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\n span::before {\n font-size: 24px;\n }\n"])), function (props) {
95
101
  return props.theme.dateInput.pickerHeaderFontColor;
96
102
  }, function (props) {
97
103
  return props.theme.dateInput.pickerHeaderBackgroundColor;
@@ -106,7 +112,7 @@ var HeaderButton = _styledComponents["default"].button(_templateObject3 || (_tem
106
112
  }, function (props) {
107
113
  return props.theme.dateInput.pickerHeaderActiveBackgroundColor;
108
114
  });
109
- var HeaderYearTrigger = (0, _styledComponents["default"])(HeaderButton)(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2["default"])(["\n gap: 8px;\n height: 40px;\n width: 172px;\n"])));
115
+ var HeaderYearTrigger = (0, _styledComponents["default"])(HeaderButton)(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2["default"])(["\n gap: 8px;\n height: 40px;\n width: 172px;\n font-size: 24px;\n span::before {\n font-size: 24px;\n }\n"])));
110
116
  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) {
111
117
  return props.theme.dateInput.pickerFontFamily;
112
118
  }, function (props) {
@@ -13,7 +13,7 @@ var _react = _interopRequireWildcard(require("react"));
13
13
  var _styledComponents = _interopRequireDefault(require("styled-components"));
14
14
  var _templateObject, _templateObject2;
15
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); }
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 && 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; }
17
17
  var getYearsArray = function getYearsArray() {
18
18
  var yearList = [];
19
19
  for (var i = 1899; i <= 2100; i++) {
@@ -26,13 +26,14 @@ var YearPicker = function YearPicker(_ref) {
26
26
  var onYearSelect = _ref.onYearSelect,
27
27
  selectedDate = _ref.selectedDate,
28
28
  today = _ref.today;
29
+ var id = (0, _react.useId)();
29
30
  var _useState = (0, _react.useState)(selectedDate ? selectedDate.get("year") : (0, _dayjs["default"])().get("year")),
30
31
  _useState2 = (0, _slicedToArray2["default"])(_useState, 2),
31
32
  yearToFocus = _useState2[0],
32
33
  setYearToFocus = _useState2[1];
33
34
  (0, _react.useEffect)(function () {
34
35
  var _yearToFocusEl$scroll;
35
- var yearToFocusEl = document.getElementById("year_".concat(yearToFocus));
36
+ var yearToFocusEl = document.getElementById("".concat(id, "_year_").concat(yearToFocus));
36
37
  yearToFocusEl === null || yearToFocusEl === void 0 ? void 0 : (_yearToFocusEl$scroll = yearToFocusEl.scrollIntoView) === null || _yearToFocusEl$scroll === void 0 ? void 0 : _yearToFocusEl$scroll.call(yearToFocusEl, {
37
38
  block: "nearest",
38
39
  inline: "start"
@@ -53,7 +54,10 @@ var YearPicker = function YearPicker(_ref) {
53
54
  break;
54
55
  }
55
56
  };
56
- return /*#__PURE__*/_react["default"].createElement(YearPickerContainer, null, yearList.map(function (year) {
57
+ return /*#__PURE__*/_react["default"].createElement(YearPickerContainer, {
58
+ role: "listbox",
59
+ "aria-label": "Year Picker"
60
+ }, yearList.map(function (year) {
57
61
  return /*#__PURE__*/_react["default"].createElement(YearPickerButton, {
58
62
  "aria-label": year,
59
63
  key: year,
@@ -64,10 +68,11 @@ var YearPicker = function YearPicker(_ref) {
64
68
  onKeyDown: function onKeyDown(event) {
65
69
  return handleDayKeyboardEvent(event);
66
70
  },
67
- id: "year_".concat(year),
71
+ id: "".concat(id, "_year_").concat(year),
68
72
  onClick: function onClick() {
69
73
  onYearSelect(year);
70
- }
74
+ },
75
+ role: "option"
71
76
  }, year);
72
77
  }));
73
78
  };
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,69 @@
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 _react = _interopRequireDefault(require("react"));
7
+ var _react2 = require("@testing-library/react");
8
+ var _axeHelper = require("../../test/accessibility/axe-helper.js");
9
+ var _Dialog = _interopRequireDefault(require("./Dialog"));
10
+ describe("Dialog component accessibility tests", function () {
11
+ it("Should not have basic accessibility issues", /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee() {
12
+ var _render, baseElement, results;
13
+ return _regenerator["default"].wrap(function _callee$(_context) {
14
+ while (1) switch (_context.prev = _context.next) {
15
+ case 0:
16
+ // baseElement is needed when using React Portals
17
+ _render = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Dialog["default"], null, "Dialog text")), baseElement = _render.baseElement;
18
+ _context.next = 3;
19
+ return (0, _axeHelper.axe)(baseElement);
20
+ case 3:
21
+ results = _context.sent;
22
+ expect(results).toHaveNoViolations();
23
+ case 5:
24
+ case "end":
25
+ return _context.stop();
26
+ }
27
+ }, _callee);
28
+ })));
29
+ it("Should not have basic accessibility issues for close button not visible", /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee2() {
30
+ var _render2, baseElement, results;
31
+ return _regenerator["default"].wrap(function _callee2$(_context2) {
32
+ while (1) switch (_context2.prev = _context2.next) {
33
+ case 0:
34
+ // baseElement is needed when using React Portals
35
+ _render2 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Dialog["default"], {
36
+ isCloseVisible: false
37
+ }, "Dialog text")), baseElement = _render2.baseElement;
38
+ _context2.next = 3;
39
+ return (0, _axeHelper.axe)(baseElement);
40
+ case 3:
41
+ results = _context2.sent;
42
+ expect(results).toHaveNoViolations();
43
+ case 5:
44
+ case "end":
45
+ return _context2.stop();
46
+ }
47
+ }, _callee2);
48
+ })));
49
+ it("Should not have basic accessibility issues for overlay not visible", /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee3() {
50
+ var _render3, baseElement, results;
51
+ return _regenerator["default"].wrap(function _callee3$(_context3) {
52
+ while (1) switch (_context3.prev = _context3.next) {
53
+ case 0:
54
+ // baseElement is needed when using React Portals
55
+ _render3 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Dialog["default"], {
56
+ overlay: false
57
+ }, "Dialog text")), baseElement = _render3.baseElement;
58
+ _context3.next = 3;
59
+ return (0, _axeHelper.axe)(baseElement);
60
+ case 3:
61
+ results = _context3.sent;
62
+ expect(results).toHaveNoViolations();
63
+ case 5:
64
+ case "end":
65
+ return _context3.stop();
66
+ }
67
+ }, _callee3);
68
+ })));
69
+ });