@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
@@ -1,20 +1,54 @@
1
1
  "use strict";
2
2
 
3
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"));
4
8
  var _react = _interopRequireDefault(require("react"));
5
9
  var _react2 = require("@testing-library/react");
6
10
  var _userEvent = _interopRequireDefault(require("@testing-library/user-event"));
7
- var _Dialog = _interopRequireDefault(require("./Dialog.tsx"));
8
- var _TextInput = _interopRequireDefault(require("../text-input/TextInput.tsx"));
9
- var _Textarea = _interopRequireDefault(require("../textarea/Textarea.tsx"));
10
- var _Checkbox = _interopRequireDefault(require("../checkbox/Checkbox.tsx"));
11
- var _Select = _interopRequireDefault(require("../select/Select.tsx"));
12
- var _Button = _interopRequireDefault(require("../button/Button.tsx"));
13
- var _Link = _interopRequireDefault(require("../link/Link.tsx"));
14
- var _Card = _interopRequireDefault(require("../card/Card.tsx"));
15
- var _RadioGroup = _interopRequireDefault(require("../radio-group/RadioGroup.tsx"));
16
- var _Slider = _interopRequireDefault(require("../slider/Slider.tsx"));
17
- var _Switch = _interopRequireDefault(require("../switch/Switch.tsx"));
11
+ var _Dialog = _interopRequireDefault(require("./Dialog"));
12
+ var _TextInput = _interopRequireDefault(require("../text-input/TextInput"));
13
+ var _Textarea = _interopRequireDefault(require("../textarea/Textarea"));
14
+ var _Checkbox = _interopRequireDefault(require("../checkbox/Checkbox"));
15
+ var _Select = _interopRequireDefault(require("../select/Select"));
16
+ var _Button = _interopRequireDefault(require("../button/Button"));
17
+ var _Link = _interopRequireDefault(require("../link/Link"));
18
+ var _Card = _interopRequireDefault(require("../card/Card"));
19
+ var _RadioGroup = _interopRequireDefault(require("../radio-group/RadioGroup"));
20
+ var _Slider = _interopRequireDefault(require("../slider/Slider"));
21
+ var _Switch = _interopRequireDefault(require("../switch/Switch"));
22
+ var _DateInput = _interopRequireDefault(require("../date-input/DateInput"));
23
+ // Mocking DOMRect for Radix Primitive Popover
24
+ global.globalThis = global;
25
+ global.DOMRect = {
26
+ fromRect: function fromRect() {
27
+ return {
28
+ top: 0,
29
+ left: 0,
30
+ bottom: 0,
31
+ right: 0,
32
+ width: 0,
33
+ height: 0
34
+ };
35
+ }
36
+ };
37
+ global.ResizeObserver = /*#__PURE__*/function () {
38
+ function ResizeObserver() {
39
+ (0, _classCallCheck2["default"])(this, ResizeObserver);
40
+ }
41
+ return (0, _createClass2["default"])(ResizeObserver, [{
42
+ key: "observe",
43
+ value: function observe() {}
44
+ }, {
45
+ key: "unobserve",
46
+ value: function unobserve() {}
47
+ }, {
48
+ key: "disconnect",
49
+ value: function disconnect() {}
50
+ }]);
51
+ }();
18
52
  var options = [{
19
53
  label: "Female",
20
54
  value: "female"
@@ -29,7 +63,7 @@ var options = [{
29
63
  value: "other"
30
64
  }];
31
65
  describe("Dialog component tests", function () {
32
- test("Dialog renders with correct text and accesibility attributes", function () {
66
+ test("Dialog renders with correct text and accessibility attributes", function () {
33
67
  var _render = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Dialog["default"], null, "dialog-text")),
34
68
  getByText = _render.getByText,
35
69
  getByRole = _render.getByRole;
@@ -77,11 +111,40 @@ describe("Dialog component tests", function () {
77
111
  });
78
112
  expect(onCloseClick).toHaveBeenCalled();
79
113
  });
114
+ test("Does not call function onCloseClick when 'Escape' key is pressed while a child popover is opened", /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee() {
115
+ var onCloseClick, _render6, getByRole, calendarAction;
116
+ return _regenerator["default"].wrap(function _callee$(_context) {
117
+ while (1) switch (_context.prev = _context.next) {
118
+ case 0:
119
+ onCloseClick = jest.fn();
120
+ _render6 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Dialog["default"], {
121
+ onCloseClick: onCloseClick
122
+ }, /*#__PURE__*/_react["default"].createElement(_DateInput["default"], {
123
+ label: "With format M-dd-yyyy",
124
+ format: "M-dd-yyyy"
125
+ }))), getByRole = _render6.getByRole;
126
+ calendarAction = getByRole("combobox");
127
+ _context.next = 5;
128
+ return _userEvent["default"].click(calendarAction);
129
+ case 5:
130
+ _react2.fireEvent.keyDown(document.activeElement, {
131
+ key: "Escape",
132
+ code: "Escape",
133
+ keyCode: 27,
134
+ charCode: 27
135
+ });
136
+ expect(onCloseClick).not.toHaveBeenCalled();
137
+ case 7:
138
+ case "end":
139
+ return _context.stop();
140
+ }
141
+ }, _callee);
142
+ })));
80
143
  });
81
144
  describe("Dialog component: Focus lock tests", function () {
82
145
  test("Close action: when there's no focusable content, the focus never leaves the close action (unless you click outside)", function () {
83
- var _render6 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Dialog["default"], null, "example-dialog")),
84
- getByRole = _render6.getByRole;
146
+ var _render7 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Dialog["default"], null, "example-dialog")),
147
+ getByRole = _render7.getByRole;
85
148
  var button = getByRole("button");
86
149
  var dialog = getByRole("dialog");
87
150
  expect(document.activeElement).toEqual(button);
@@ -95,100 +158,100 @@ describe("Dialog component: Focus lock tests", function () {
95
158
  expect(document.activeElement).toEqual(button);
96
159
  });
97
160
  test("Autofocus with Button component", function () {
98
- var _render7 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Dialog["default"], null, /*#__PURE__*/_react["default"].createElement(_Button["default"], {
161
+ var _render8 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Dialog["default"], null, /*#__PURE__*/_react["default"].createElement(_Button["default"], {
99
162
  label: "Accept"
100
163
  }))),
101
- getAllByRole = _render7.getAllByRole;
164
+ getAllByRole = _render8.getAllByRole;
102
165
  var button = getAllByRole("button")[0];
103
166
  expect(document.activeElement).toEqual(button);
104
167
  expect(button.getAttribute("aria-label")).not.toBe("Close dialog");
105
168
  });
106
169
  test("Autofocus with Card component", function () {
107
- var _render8 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Dialog["default"], null, /*#__PURE__*/_react["default"].createElement(_Card["default"], {
170
+ var _render9 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Dialog["default"], null, /*#__PURE__*/_react["default"].createElement(_Card["default"], {
108
171
  linkHref: "https://developer.dxc.com/halstack/next/components/card/"
109
172
  }, "example-card"))),
110
- getByRole = _render8.getByRole;
173
+ getByRole = _render9.getByRole;
111
174
  var card = getByRole("link");
112
175
  expect(document.activeElement).toEqual(card);
113
176
  });
114
177
  test("Autofocus with Checkbox component", function () {
115
- var _render9 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Dialog["default"], null, /*#__PURE__*/_react["default"].createElement(_Checkbox["default"], {
178
+ var _render10 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Dialog["default"], null, /*#__PURE__*/_react["default"].createElement(_Checkbox["default"], {
116
179
  label: "Name"
117
180
  }))),
118
- getByRole = _render9.getByRole;
181
+ getByRole = _render10.getByRole;
119
182
  var checkbox = getByRole("checkbox");
120
183
  expect(document.activeElement).toEqual(checkbox);
121
184
  });
122
185
  test("Autofocus with Link component", function () {
123
- var _render10 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Dialog["default"], null, "This is a text with a ", /*#__PURE__*/_react["default"].createElement(_Link["default"], {
186
+ var _render11 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Dialog["default"], null, "This is a text with a ", /*#__PURE__*/_react["default"].createElement(_Link["default"], {
124
187
  href: "#"
125
188
  }, "Link"), " to another page.")),
126
- getByRole = _render10.getByRole;
189
+ getByRole = _render11.getByRole;
127
190
  var link = getByRole("link");
128
191
  expect(document.activeElement).toEqual(link);
129
192
  });
130
193
  test("Autofocus with RadioGroup component", function () {
131
- var _render11 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Dialog["default"], null, /*#__PURE__*/_react["default"].createElement(_RadioGroup["default"], {
194
+ var _render12 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Dialog["default"], null, /*#__PURE__*/_react["default"].createElement(_RadioGroup["default"], {
132
195
  label: "Example",
133
196
  options: options
134
197
  }))),
135
- getAllByRole = _render11.getAllByRole;
198
+ getAllByRole = _render12.getAllByRole;
136
199
  var checkedRadio = getAllByRole("radio")[0];
137
200
  expect(document.activeElement).toEqual(checkedRadio);
138
201
  });
139
202
  test("Autofocus with Select component", function () {
140
- var _render12 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Dialog["default"], null, /*#__PURE__*/_react["default"].createElement(_Select["default"], {
203
+ var _render13 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Dialog["default"], null, /*#__PURE__*/_react["default"].createElement(_Select["default"], {
141
204
  label: "Country",
142
205
  options: options
143
206
  }))),
144
- getByRole = _render12.getByRole;
207
+ getByRole = _render13.getByRole;
145
208
  var select = getByRole("combobox");
146
209
  expect(document.activeElement).toEqual(select);
147
210
  });
148
211
  test("Autofocus with Slider component", function () {
149
- var _render13 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Dialog["default"], null, /*#__PURE__*/_react["default"].createElement(_Slider["default"], {
212
+ var _render14 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Dialog["default"], null, /*#__PURE__*/_react["default"].createElement(_Slider["default"], {
150
213
  label: "label",
151
214
  minValue: 0,
152
215
  maxValue: 100,
153
216
  showLimitsValues: true
154
217
  }))),
155
- getByRole = _render13.getByRole;
218
+ getByRole = _render14.getByRole;
156
219
  var slider = getByRole("slider");
157
220
  expect(document.activeElement).toEqual(slider);
158
221
  });
159
222
  test("Autofocus with Switch component", function () {
160
- var _render14 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Dialog["default"], null, /*#__PURE__*/_react["default"].createElement(_Switch["default"], {
223
+ var _render15 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Dialog["default"], null, /*#__PURE__*/_react["default"].createElement(_Switch["default"], {
161
224
  label: "Example"
162
225
  }))),
163
- getByRole = _render14.getByRole;
226
+ getByRole = _render15.getByRole;
164
227
  var switchButton = getByRole("switch");
165
228
  expect(document.activeElement).toEqual(switchButton);
166
229
  });
167
230
  test("Autofocus with Text Input component", function () {
168
- var _render15 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Dialog["default"], null, /*#__PURE__*/_react["default"].createElement(_TextInput["default"], {
231
+ var _render16 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Dialog["default"], null, /*#__PURE__*/_react["default"].createElement(_TextInput["default"], {
169
232
  label: "Name"
170
233
  }))),
171
- getByRole = _render15.getByRole;
234
+ getByRole = _render16.getByRole;
172
235
  var input = getByRole("textbox");
173
236
  expect(document.activeElement).toEqual(input);
174
237
  });
175
238
  test("Autofocus with Textarea component", function () {
176
- var _render16 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Dialog["default"], null, /*#__PURE__*/_react["default"].createElement(_Textarea["default"], {
239
+ var _render17 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Dialog["default"], null, /*#__PURE__*/_react["default"].createElement(_Textarea["default"], {
177
240
  label: "Name"
178
241
  }))),
179
- getByRole = _render16.getByRole;
242
+ getByRole = _render17.getByRole;
180
243
  var textarea = getByRole("textbox");
181
244
  expect(document.activeElement).toEqual(textarea);
182
245
  });
183
246
  test("Negative tabindex elements are not automatically focused, even if it is enabled and a valid focusable item (programatically and by click)", function () {
184
- var _render17 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Dialog["default"], null, /*#__PURE__*/_react["default"].createElement("input", {
185
- label: "Name",
247
+ var _render18 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Dialog["default"], null, /*#__PURE__*/_react["default"].createElement("input", {
248
+ title: "Name",
186
249
  tabIndex: -1
187
250
  }), /*#__PURE__*/_react["default"].createElement("input", {
188
- label: "Name"
251
+ title: "Name"
189
252
  }))),
190
- getAllByRole = _render17.getAllByRole,
191
- getByRole = _render17.getByRole;
253
+ getAllByRole = _render18.getAllByRole,
254
+ getByRole = _render18.getByRole;
192
255
  var inputs = getAllByRole("textbox");
193
256
  var button = getByRole("button");
194
257
  expect(document.activeElement).toEqual(inputs[1]);
@@ -198,7 +261,7 @@ describe("Dialog component: Focus lock tests", function () {
198
261
  expect(document.activeElement).toEqual(inputs[1]);
199
262
  });
200
263
  test("Focus jumps disabled components and negative tabIndexes when autofocusing first item", function () {
201
- var _render18 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Dialog["default"], null, /*#__PURE__*/_react["default"].createElement(_Button["default"], {
264
+ var _render19 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Dialog["default"], null, /*#__PURE__*/_react["default"].createElement(_Button["default"], {
202
265
  label: "Accept",
203
266
  disabled: true
204
267
  }), /*#__PURE__*/_react["default"].createElement(_Checkbox["default"], {
@@ -235,12 +298,12 @@ describe("Dialog component: Focus lock tests", function () {
235
298
  }), /*#__PURE__*/_react["default"].createElement(_Textarea["default"], {
236
299
  label: "Description"
237
300
  }))),
238
- getAllByRole = _render18.getAllByRole;
301
+ getAllByRole = _render19.getAllByRole;
239
302
  var textarea = getAllByRole("textbox")[2];
240
303
  expect(document.activeElement).toEqual(textarea);
241
304
  });
242
305
  test("Focus jumps from last element to the first", function () {
243
- var _render19 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Dialog["default"], null, /*#__PURE__*/_react["default"].createElement(_Checkbox["default"], {
306
+ var _render20 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Dialog["default"], null, /*#__PURE__*/_react["default"].createElement(_Checkbox["default"], {
244
307
  label: "Accept",
245
308
  disabled: true
246
309
  }), /*#__PURE__*/_react["default"].createElement(_Textarea["default"], {
@@ -249,7 +312,7 @@ describe("Dialog component: Focus lock tests", function () {
249
312
  label: "Name",
250
313
  options: options
251
314
  }))),
252
- getByRole = _render19.getByRole;
315
+ getByRole = _render20.getByRole;
253
316
  var closeAction = getByRole("button");
254
317
  var textarea = getByRole("textbox");
255
318
  expect(document.activeElement).toEqual(textarea);
@@ -260,13 +323,13 @@ describe("Dialog component: Focus lock tests", function () {
260
323
  expect(document.activeElement).toEqual(textarea);
261
324
  });
262
325
  test("'display: none;', 'visibility: hidden;' and 'type = 'hidden'' elements are never autofocused", function () {
263
- var _render20 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Dialog["default"], null, /*#__PURE__*/_react["default"].createElement("input", {
264
- label: "Name",
326
+ var _render21 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Dialog["default"], null, /*#__PURE__*/_react["default"].createElement("input", {
327
+ title: "Name",
265
328
  style: {
266
329
  display: "none"
267
330
  }
268
331
  }), /*#__PURE__*/_react["default"].createElement("input", {
269
- label: "Name",
332
+ title: "Name",
270
333
  style: {
271
334
  visibility: "hidden"
272
335
  }
@@ -274,21 +337,21 @@ describe("Dialog component: Focus lock tests", function () {
274
337
  type: "hidden",
275
338
  name: "example"
276
339
  }))),
277
- getByRole = _render20.getByRole;
340
+ getByRole = _render21.getByRole;
278
341
  var closeAction = getByRole("button");
279
342
  expect(document.activeElement).toEqual(closeAction);
280
343
  _userEvent["default"].tab();
281
344
  expect(document.activeElement).toEqual(closeAction);
282
345
  });
283
346
  test("Focus gets trapped in the Dialog when there are not focusable elements inside until it is closed", function () {
284
- var _render21 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement(_TextInput["default"], {
347
+ var _render22 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement(_TextInput["default"], {
285
348
  label: "Name"
286
349
  }), /*#__PURE__*/_react["default"].createElement(_Dialog["default"], {
287
350
  isCloseVisible: false
288
351
  }, /*#__PURE__*/_react["default"].createElement("h2", null, "Policy agreement"), /*#__PURE__*/_react["default"].createElement("p", null, "Sample text.")), /*#__PURE__*/_react["default"].createElement(_TextInput["default"], {
289
352
  label: "Surname"
290
353
  }))),
291
- getAllByRole = _render21.getAllByRole;
354
+ getAllByRole = _render22.getAllByRole;
292
355
  var inputs = getAllByRole("textbox");
293
356
  var dialog = getAllByRole("dialog")[0];
294
357
  _userEvent["default"].tab();
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,33 @@
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 _Divider = _interopRequireDefault(require("./Divider"));
10
+ describe("Divider accessibility tests", function () {
11
+ it("Should not have basic accessibility issues", /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee() {
12
+ var _render, container, results;
13
+ return _regenerator["default"].wrap(function _callee$(_context) {
14
+ while (1) switch (_context.prev = _context.next) {
15
+ case 0:
16
+ _render = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Divider["default"], {
17
+ orientation: "vertical",
18
+ color: "darkGrey",
19
+ decorative: false,
20
+ weight: "strong"
21
+ })), container = _render.container;
22
+ _context.next = 3;
23
+ return (0, _axeHelper.axe)(container);
24
+ case 3:
25
+ results = _context.sent;
26
+ expect(results).toHaveNoViolations();
27
+ case 5:
28
+ case "end":
29
+ return _context.stop();
30
+ }
31
+ }, _callee);
32
+ })));
33
+ });
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,183 @@
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 _Dropdown = _interopRequireDefault(require("./Dropdown"));
12
+ var iconSVG = /*#__PURE__*/_react["default"].createElement("svg", {
13
+ viewBox: "0 0 24 24",
14
+ height: "24",
15
+ width: "24",
16
+ fill: "currentColor"
17
+ }, /*#__PURE__*/_react["default"].createElement("path", {
18
+ d: "M0 0h24v24H0z",
19
+ fill: "none"
20
+ }), /*#__PURE__*/_react["default"].createElement("path", {
21
+ d: "M12 21.35l-1.45-1.32C5.4 15.36 2 12.28 2 8.5 2 5.42 4.42 3 7.5 3c1.74 0 3.41.81 4.5 2.09C13.09 3.81 14.76 3 16.5 3 19.58 3 22 5.42 22 8.5c0 3.78-3.4 6.86-8.55 11.54L12 21.35z"
22
+ }));
23
+ var iconUrl = "https://iconape.com/wp-content/files/yd/367773/svg/logo-linkedin-logo-icon-png-svg.png";
24
+
25
+ // Mocking DOMRect for Radix Primitive Popover
26
+ global.globalThis = global;
27
+ global.DOMRect = {
28
+ fromRect: function fromRect() {
29
+ return {
30
+ top: 0,
31
+ left: 0,
32
+ bottom: 0,
33
+ right: 0,
34
+ width: 0,
35
+ height: 0
36
+ };
37
+ }
38
+ };
39
+ global.ResizeObserver = /*#__PURE__*/function () {
40
+ function ResizeObserver() {
41
+ (0, _classCallCheck2["default"])(this, ResizeObserver);
42
+ }
43
+ return (0, _createClass2["default"])(ResizeObserver, [{
44
+ key: "observe",
45
+ value: function observe() {}
46
+ }, {
47
+ key: "unobserve",
48
+ value: function unobserve() {}
49
+ }, {
50
+ key: "disconnect",
51
+ value: function disconnect() {}
52
+ }]);
53
+ }();
54
+ var options = [{
55
+ value: "1",
56
+ label: "Amazon",
57
+ icon: iconUrl
58
+ }, {
59
+ value: "2",
60
+ label: "Ebay",
61
+ icon: iconUrl
62
+ }, {
63
+ value: "3",
64
+ label: "Wallapop",
65
+ icon: iconSVG
66
+ }, {
67
+ value: "4",
68
+ label: "Aliexpress",
69
+ icon: iconSVG
70
+ }];
71
+ describe("Dropdown component accessibility tests", function () {
72
+ it("Should not have basic accessibility issues", /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee() {
73
+ var _render, baseElement, results;
74
+ return _regenerator["default"].wrap(function _callee$(_context) {
75
+ while (1) switch (_context.prev = _context.next) {
76
+ case 0:
77
+ // baseElement is needed when using React Portals
78
+ _render = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Dropdown["default"], {
79
+ options: options,
80
+ label: "dropdown-test",
81
+ icon: iconSVG,
82
+ iconPosition: "before",
83
+ margin: "medium",
84
+ size: "medium",
85
+ optionsIconPosition: "before",
86
+ onSelectOption: function onSelectOption() {}
87
+ })), baseElement = _render.baseElement;
88
+ _context.next = 3;
89
+ return (0, _axeHelper.axe)(baseElement);
90
+ case 3:
91
+ results = _context.sent;
92
+ expect(results).toHaveNoViolations();
93
+ case 5:
94
+ case "end":
95
+ return _context.stop();
96
+ }
97
+ }, _callee);
98
+ })));
99
+ it("Should not have basic accessibility issues for disabled mode", /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee2() {
100
+ var _render2, baseElement, results;
101
+ return _regenerator["default"].wrap(function _callee2$(_context2) {
102
+ while (1) switch (_context2.prev = _context2.next) {
103
+ case 0:
104
+ // baseElement is needed when using React Portals
105
+ _render2 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Dropdown["default"], {
106
+ options: options,
107
+ label: "dropdown-test",
108
+ icon: iconSVG,
109
+ iconPosition: "before",
110
+ margin: "medium",
111
+ size: "medium",
112
+ optionsIconPosition: "before",
113
+ onSelectOption: function onSelectOption() {},
114
+ disabled: true
115
+ })), baseElement = _render2.baseElement;
116
+ _context2.next = 3;
117
+ return (0, _axeHelper.axe)(baseElement);
118
+ case 3:
119
+ results = _context2.sent;
120
+ expect(results).toHaveNoViolations();
121
+ case 5:
122
+ case "end":
123
+ return _context2.stop();
124
+ }
125
+ }, _callee2);
126
+ })));
127
+ it("Should not have basic accessibility issues for caret-hidden mode", /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee3() {
128
+ var _render3, baseElement, results;
129
+ return _regenerator["default"].wrap(function _callee3$(_context3) {
130
+ while (1) switch (_context3.prev = _context3.next) {
131
+ case 0:
132
+ // baseElement is needed when using React Portals
133
+ _render3 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Dropdown["default"], {
134
+ options: options,
135
+ label: "dropdown-test",
136
+ icon: iconSVG,
137
+ iconPosition: "after",
138
+ margin: "medium",
139
+ size: "medium",
140
+ optionsIconPosition: "after",
141
+ onSelectOption: function onSelectOption() {},
142
+ caretHidden: true
143
+ })), baseElement = _render3.baseElement;
144
+ _context3.next = 3;
145
+ return (0, _axeHelper.axe)(baseElement);
146
+ case 3:
147
+ results = _context3.sent;
148
+ expect(results).toHaveNoViolations();
149
+ case 5:
150
+ case "end":
151
+ return _context3.stop();
152
+ }
153
+ }, _callee3);
154
+ })));
155
+ it("Should not have basic accessibility issues for expand-on-hover mode", /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee4() {
156
+ var _render4, baseElement, results;
157
+ return _regenerator["default"].wrap(function _callee4$(_context4) {
158
+ while (1) switch (_context4.prev = _context4.next) {
159
+ case 0:
160
+ // baseElement is needed when using React Portals
161
+ _render4 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Dropdown["default"], {
162
+ options: options,
163
+ label: "dropdown-test",
164
+ icon: iconSVG,
165
+ iconPosition: "after",
166
+ margin: "medium",
167
+ size: "medium",
168
+ optionsIconPosition: "after",
169
+ onSelectOption: function onSelectOption() {},
170
+ expandOnHover: true
171
+ })), baseElement = _render4.baseElement;
172
+ _context4.next = 3;
173
+ return (0, _axeHelper.axe)(baseElement);
174
+ case 3:
175
+ results = _context4.sent;
176
+ expect(results).toHaveNoViolations();
177
+ case 5:
178
+ case "end":
179
+ return _context4.stop();
180
+ }
181
+ }, _callee4);
182
+ })));
183
+ });
@@ -14,13 +14,12 @@ var _styledComponents = _interopRequireWildcard(require("styled-components"));
14
14
  var _variables = require("../common/variables");
15
15
  var _utils = require("../common/utils");
16
16
  var _useTheme = _interopRequireDefault(require("../useTheme"));
17
- var _uuid = require("uuid");
18
17
  var Popover = _interopRequireWildcard(require("@radix-ui/react-popover"));
19
18
  var _DropdownMenu = _interopRequireDefault(require("./DropdownMenu"));
20
19
  var _Icon = _interopRequireDefault(require("../icon/Icon"));
21
20
  var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6;
22
21
  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); }
23
- function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof3(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; }
22
+ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof3(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; }
24
23
  var useWidth = function useWidth(target) {
25
24
  var _useState = (0, _react.useState)(0),
26
25
  _useState2 = (0, _slicedToArray2["default"])(_useState, 2),
@@ -62,18 +61,17 @@ var DxcDropdown = function DxcDropdown(_ref) {
62
61
  size = _ref$size === void 0 ? "fitContent" : _ref$size,
63
62
  _ref$tabIndex = _ref.tabIndex,
64
63
  tabIndex = _ref$tabIndex === void 0 ? 0 : _ref$tabIndex;
65
- var _useState3 = (0, _react.useState)("trigger-".concat((0, _uuid.v4)())),
66
- _useState4 = (0, _slicedToArray2["default"])(_useState3, 1),
67
- triggerId = _useState4[0];
68
- var menuId = "menu-".concat(triggerId);
69
- var _useState5 = (0, _react.useState)(false),
64
+ var id = (0, _react.useId)();
65
+ var triggerId = "trigger-".concat(id);
66
+ var menuId = "menu-".concat(id);
67
+ var _useState3 = (0, _react.useState)(false),
68
+ _useState4 = (0, _slicedToArray2["default"])(_useState3, 2),
69
+ isOpen = _useState4[0],
70
+ changeIsOpen = _useState4[1];
71
+ var _useState5 = (0, _react.useState)(0),
70
72
  _useState6 = (0, _slicedToArray2["default"])(_useState5, 2),
71
- isOpen = _useState6[0],
72
- changeIsOpen = _useState6[1];
73
- var _useState7 = (0, _react.useState)(0),
74
- _useState8 = (0, _slicedToArray2["default"])(_useState7, 2),
75
- visualFocusIndex = _useState8[0],
76
- setVisualFocusIndex = _useState8[1];
73
+ visualFocusIndex = _useState6[0],
74
+ setVisualFocusIndex = _useState6[1];
77
75
  var colorsTheme = (0, _useTheme["default"])();
78
76
  var triggerRef = (0, _react.useRef)(null);
79
77
  var menuRef = (0, _react.useRef)(null);
@@ -149,6 +147,7 @@ var DxcDropdown = function DxcDropdown(_ref) {
149
147
  case "Esc":
150
148
  case "Escape":
151
149
  event.preventDefault();
150
+ isOpen && event.stopPropagation();
152
151
  handleOnCloseMenu();
153
152
  (_triggerRef$current2 = triggerRef.current) === null || _triggerRef$current2 === void 0 ? void 0 : _triggerRef$current2.focus();
154
153
  break;
@@ -201,13 +200,15 @@ var DxcDropdown = function DxcDropdown(_ref) {
201
200
  size: size,
202
201
  id: triggerId,
203
202
  "aria-haspopup": "true",
204
- "aria-controls": menuId,
203
+ "aria-controls": isOpen ? menuId : undefined,
205
204
  "aria-expanded": isOpen ? true : undefined,
205
+ "aria-label": "Show options",
206
206
  tabIndex: tabIndex,
207
207
  ref: triggerRef
208
208
  }, /*#__PURE__*/_react["default"].createElement(DropdownTriggerContent, null, label && iconPosition === "after" && /*#__PURE__*/_react["default"].createElement(DropdownTriggerLabel, null, label), icon && /*#__PURE__*/_react["default"].createElement(DropdownTriggerIcon, {
209
209
  disabled: disabled,
210
- role: typeof icon === "string" ? undefined : "img"
210
+ role: typeof icon === "string" ? undefined : "img",
211
+ "aria-hidden": true
211
212
  }, typeof icon === "string" ? /*#__PURE__*/_react["default"].createElement(_Icon["default"], {
212
213
  icon: icon
213
214
  }) : icon), label && iconPosition === "before" && /*#__PURE__*/_react["default"].createElement(DropdownTriggerLabel, null, label)), !caretHidden && /*#__PURE__*/_react["default"].createElement(CaretIcon, {