@dxc-technology/halstack-react 0.0.0-9bd9511 → 0.0.0-9c20370

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 (213) hide show
  1. package/BackgroundColorContext.d.ts +3 -3
  2. package/BackgroundColorContext.js +12 -2
  3. package/HalstackContext.d.ts +1330 -7
  4. package/HalstackContext.js +84 -67
  5. package/accordion/Accordion.d.ts +1 -1
  6. package/accordion/Accordion.js +74 -55
  7. package/accordion/Accordion.stories.tsx +3 -101
  8. package/accordion/Accordion.test.js +34 -19
  9. package/accordion/types.d.ts +4 -16
  10. package/accordion-group/AccordionGroup.d.ts +4 -3
  11. package/accordion-group/AccordionGroup.js +49 -42
  12. package/accordion-group/AccordionGroup.stories.tsx +77 -76
  13. package/accordion-group/AccordionGroup.test.js +62 -54
  14. package/accordion-group/AccordionGroupAccordion.d.ts +4 -0
  15. package/accordion-group/AccordionGroupAccordion.js +43 -0
  16. package/accordion-group/types.d.ts +6 -18
  17. package/alert/Alert.js +47 -20
  18. package/alert/Alert.test.js +46 -29
  19. package/alert/types.d.ts +3 -3
  20. package/badge/Badge.js +14 -2
  21. package/badge/types.d.ts +1 -1
  22. package/bleed/Bleed.js +21 -13
  23. package/bleed/Bleed.stories.tsx +1 -0
  24. package/bleed/types.d.ts +2 -2
  25. package/box/Box.d.ts +1 -1
  26. package/box/Box.js +33 -33
  27. package/box/Box.stories.tsx +25 -53
  28. package/box/Box.test.js +7 -2
  29. package/box/types.d.ts +3 -15
  30. package/bulleted-list/BulletedList.js +36 -9
  31. package/bulleted-list/BulletedList.stories.tsx +7 -1
  32. package/bulleted-list/types.d.ts +32 -5
  33. package/button/Button.d.ts +1 -1
  34. package/button/Button.js +83 -71
  35. package/button/Button.stories.tsx +4 -4
  36. package/button/Button.test.js +28 -8
  37. package/button/types.d.ts +8 -4
  38. package/card/Card.d.ts +1 -1
  39. package/card/Card.js +67 -62
  40. package/card/Card.stories.tsx +12 -42
  41. package/card/Card.test.js +22 -11
  42. package/card/types.d.ts +4 -10
  43. package/checkbox/Checkbox.js +71 -27
  44. package/checkbox/Checkbox.test.js +60 -33
  45. package/checkbox/types.d.ts +4 -4
  46. package/chip/Chip.js +51 -48
  47. package/chip/Chip.stories.tsx +25 -17
  48. package/chip/Chip.test.js +29 -17
  49. package/chip/types.d.ts +4 -4
  50. package/common/OpenSans.css +68 -80
  51. package/common/coreTokens.d.ts +146 -0
  52. package/common/coreTokens.js +167 -0
  53. package/common/utils.d.ts +1 -0
  54. package/common/utils.js +8 -3
  55. package/common/variables.d.ts +226 -175
  56. package/common/variables.js +956 -1133
  57. package/date-input/Calendar.js +55 -12
  58. package/date-input/DateInput.js +82 -35
  59. package/date-input/DateInput.test.js +351 -164
  60. package/date-input/DatePicker.js +38 -8
  61. package/date-input/Icons.js +12 -0
  62. package/date-input/YearPicker.js +30 -5
  63. package/date-input/types.d.ts +7 -7
  64. package/dialog/Dialog.d.ts +1 -1
  65. package/dialog/Dialog.js +83 -86
  66. package/dialog/Dialog.stories.tsx +127 -221
  67. package/dialog/Dialog.test.js +331 -18
  68. package/dialog/types.d.ts +1 -14
  69. package/dropdown/Dropdown.js +86 -32
  70. package/dropdown/Dropdown.test.js +211 -104
  71. package/dropdown/DropdownMenu.js +22 -8
  72. package/dropdown/DropdownMenuItem.js +15 -6
  73. package/dropdown/types.d.ts +8 -8
  74. package/file-input/FileInput.js +218 -134
  75. package/file-input/FileInput.test.js +343 -331
  76. package/file-input/FileItem.js +39 -12
  77. package/file-input/types.d.ts +10 -10
  78. package/flex/Flex.js +39 -25
  79. package/flex/Flex.stories.tsx +35 -26
  80. package/flex/types.d.ts +74 -9
  81. package/footer/Footer.d.ts +1 -1
  82. package/footer/Footer.js +80 -68
  83. package/footer/Footer.stories.tsx +12 -89
  84. package/footer/Footer.test.js +47 -40
  85. package/footer/Icons.js +4 -0
  86. package/footer/types.d.ts +15 -17
  87. package/grid/Grid.d.ts +7 -0
  88. package/grid/Grid.js +91 -0
  89. package/grid/Grid.stories.tsx +219 -0
  90. package/grid/types.d.ts +115 -0
  91. package/header/Header.d.ts +4 -3
  92. package/header/Header.js +72 -55
  93. package/header/Header.stories.tsx +7 -71
  94. package/header/Header.test.js +26 -13
  95. package/header/Icons.js +4 -0
  96. package/header/types.d.ts +2 -16
  97. package/heading/Heading.js +28 -7
  98. package/heading/Heading.test.js +88 -71
  99. package/heading/types.d.ts +3 -3
  100. package/inset/Inset.js +21 -13
  101. package/inset/Inset.stories.tsx +2 -1
  102. package/inset/types.d.ts +2 -2
  103. package/layout/ApplicationLayout.d.ts +5 -5
  104. package/layout/ApplicationLayout.js +57 -15
  105. package/layout/Icons.js +10 -0
  106. package/layout/SidenavContext.d.ts +1 -1
  107. package/layout/SidenavContext.js +4 -0
  108. package/layout/types.d.ts +5 -6
  109. package/link/Link.js +41 -21
  110. package/link/Link.test.js +42 -26
  111. package/link/types.d.ts +4 -4
  112. package/main.d.ts +2 -1
  113. package/main.js +55 -0
  114. package/nav-tabs/NavTabs.d.ts +2 -2
  115. package/nav-tabs/NavTabs.js +43 -16
  116. package/nav-tabs/NavTabs.stories.tsx +14 -0
  117. package/nav-tabs/NavTabs.test.js +44 -37
  118. package/nav-tabs/Tab.js +71 -45
  119. package/nav-tabs/types.d.ts +10 -11
  120. package/number-input/NumberInput.js +30 -20
  121. package/number-input/NumberInput.test.js +249 -113
  122. package/number-input/NumberInputContext.js +5 -0
  123. package/number-input/numberInputContextTypes.d.ts +1 -1
  124. package/number-input/types.d.ts +4 -4
  125. package/package.json +7 -7
  126. package/paginator/Icons.js +10 -0
  127. package/paginator/Paginator.js +39 -17
  128. package/paginator/Paginator.test.js +156 -104
  129. package/paginator/types.d.ts +1 -1
  130. package/paragraph/Paragraph.d.ts +3 -4
  131. package/paragraph/Paragraph.js +18 -8
  132. package/password-input/PasswordInput.js +51 -22
  133. package/password-input/PasswordInput.test.js +94 -51
  134. package/password-input/types.d.ts +4 -4
  135. package/progress-bar/ProgressBar.d.ts +2 -2
  136. package/progress-bar/ProgressBar.js +39 -14
  137. package/progress-bar/ProgressBar.test.js +53 -36
  138. package/progress-bar/types.d.ts +4 -3
  139. package/quick-nav/QuickNav.js +24 -2
  140. package/quick-nav/types.d.ts +2 -2
  141. package/radio-group/Radio.js +53 -22
  142. package/radio-group/RadioGroup.js +84 -41
  143. package/radio-group/RadioGroup.test.js +288 -186
  144. package/radio-group/types.d.ts +4 -4
  145. package/resultsetTable/Icons.js +3 -0
  146. package/resultsetTable/ResultsetTable.js +56 -21
  147. package/resultsetTable/ResultsetTable.test.js +75 -42
  148. package/resultsetTable/types.d.ts +5 -5
  149. package/select/Icons.js +3 -0
  150. package/select/Listbox.js +35 -10
  151. package/select/Option.js +24 -8
  152. package/select/Select.js +143 -56
  153. package/select/Select.test.js +839 -456
  154. package/select/types.d.ts +12 -12
  155. package/sidenav/Icons.d.ts +7 -0
  156. package/sidenav/Icons.js +51 -0
  157. package/sidenav/Sidenav.d.ts +2 -2
  158. package/sidenav/Sidenav.js +116 -104
  159. package/sidenav/Sidenav.stories.tsx +60 -60
  160. package/sidenav/Sidenav.test.js +10 -3
  161. package/sidenav/types.d.ts +26 -23
  162. package/slider/Slider.js +84 -38
  163. package/slider/Slider.test.js +104 -76
  164. package/slider/types.d.ts +4 -4
  165. package/spinner/Spinner.js +51 -28
  166. package/spinner/Spinner.stories.jsx +28 -28
  167. package/spinner/Spinner.test.js +35 -26
  168. package/spinner/types.d.ts +3 -3
  169. package/switch/Switch.js +66 -24
  170. package/switch/Switch.test.js +97 -52
  171. package/switch/types.d.ts +4 -4
  172. package/table/Table.js +22 -4
  173. package/table/Table.test.js +7 -2
  174. package/table/types.d.ts +3 -3
  175. package/tabs/Tab.js +39 -22
  176. package/tabs/Tabs.js +131 -62
  177. package/tabs/Tabs.test.js +122 -67
  178. package/tabs/types.d.ts +8 -8
  179. package/tag/Tag.js +54 -27
  180. package/tag/Tag.test.js +31 -20
  181. package/tag/types.d.ts +7 -7
  182. package/text-input/Icons.js +3 -0
  183. package/text-input/Suggestion.js +24 -8
  184. package/text-input/Suggestions.js +36 -11
  185. package/text-input/TextInput.js +144 -59
  186. package/text-input/TextInput.stories.tsx +1 -1
  187. package/text-input/TextInput.test.js +858 -539
  188. package/text-input/types.d.ts +9 -9
  189. package/textarea/Textarea.js +73 -38
  190. package/textarea/Textarea.test.js +173 -98
  191. package/textarea/types.d.ts +4 -4
  192. package/toggle-group/ToggleGroup.d.ts +2 -2
  193. package/toggle-group/ToggleGroup.js +59 -21
  194. package/toggle-group/ToggleGroup.test.js +72 -40
  195. package/toggle-group/types.d.ts +11 -11
  196. package/typography/Typography.d.ts +2 -2
  197. package/typography/Typography.js +23 -110
  198. package/typography/Typography.stories.tsx +1 -1
  199. package/typography/types.d.ts +1 -1
  200. package/useTheme.d.ts +1234 -1
  201. package/useTheme.js +6 -0
  202. package/useTranslatedLabels.d.ts +84 -2
  203. package/useTranslatedLabels.js +5 -0
  204. package/utils/BaseTypography.d.ts +21 -0
  205. package/utils/BaseTypography.js +108 -0
  206. package/utils/FocusLock.d.ts +13 -0
  207. package/utils/FocusLock.js +138 -0
  208. package/wizard/Wizard.js +47 -13
  209. package/wizard/Wizard.test.js +81 -54
  210. package/wizard/types.d.ts +7 -8
  211. package/card/ice-cream.jpg +0 -0
  212. package/translatedLabelsType.d.ts +0 -82
  213. /package/{translatedLabelsType.js → grid/types.js} +0 -0
@@ -1,12 +1,20 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
4
5
  var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
6
+
5
7
  var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
8
+
6
9
  var _react = _interopRequireDefault(require("react"));
10
+
7
11
  var _react2 = require("@testing-library/react");
8
- var _Dropdown = _interopRequireDefault(require("./Dropdown"));
12
+
9
13
  var _userEvent = _interopRequireDefault(require("@testing-library/user-event"));
14
+
15
+ var _Dropdown = _interopRequireDefault(require("./Dropdown.tsx"));
16
+
17
+ // Mocking DOMRect for Radix Primitive Popover
10
18
  global.globalThis = global;
11
19
  global.DOMRect = {
12
20
  fromRect: function fromRect() {
@@ -20,10 +28,12 @@ global.DOMRect = {
20
28
  };
21
29
  }
22
30
  };
31
+
23
32
  global.ResizeObserver = /*#__PURE__*/function () {
24
33
  function ResizeObserver() {
25
34
  (0, _classCallCheck2["default"])(this, ResizeObserver);
26
35
  }
36
+
27
37
  (0, _createClass2["default"])(ResizeObserver, [{
28
38
  key: "observe",
29
39
  value: function observe() {}
@@ -36,6 +46,7 @@ global.ResizeObserver = /*#__PURE__*/function () {
36
46
  }]);
37
47
  return ResizeObserver;
38
48
  }();
49
+
39
50
  var options = [{
40
51
  value: "1",
41
52
  label: "Amazon"
@@ -52,16 +63,19 @@ var options = [{
52
63
  describe("Dropdown component tests", function () {
53
64
  test("Renders with correct aria attributes", function () {
54
65
  var _render = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Dropdown["default"], {
55
- options: options,
56
- label: "dropdown-test"
57
- })),
58
- getAllByRole = _render.getAllByRole,
59
- getByRole = _render.getByRole;
66
+ options: options,
67
+ label: "dropdown-test"
68
+ })),
69
+ getAllByRole = _render.getAllByRole,
70
+ getByRole = _render.getByRole;
71
+
60
72
  var dropdown = getByRole("button");
61
73
  expect(dropdown.getAttribute("aria-haspopup")).toBe("true");
62
74
  expect(dropdown.getAttribute("aria-expanded")).toBeNull();
63
75
  expect(dropdown.getAttribute("aria-activedescendant")).toBeNull();
76
+
64
77
  _userEvent["default"].click(dropdown);
78
+
65
79
  var menu = getByRole("menu");
66
80
  expect(dropdown.getAttribute("aria-controls")).toBe(menu.id);
67
81
  expect(dropdown.getAttribute("aria-expanded")).toBe("true");
@@ -72,67 +86,86 @@ describe("Dropdown component tests", function () {
72
86
  });
73
87
  test("Button trigger opens and closes the menu options when clicked", function () {
74
88
  var _render2 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Dropdown["default"], {
75
- options: options,
76
- label: "dropdown-test"
77
- })),
78
- getByRole = _render2.getByRole,
79
- queryByRole = _render2.queryByRole,
80
- getByText = _render2.getByText;
89
+ options: options,
90
+ label: "dropdown-test"
91
+ })),
92
+ getByRole = _render2.getByRole,
93
+ queryByRole = _render2.queryByRole,
94
+ getByText = _render2.getByText;
95
+
81
96
  var dropdown = getByRole("button");
82
97
  expect(queryByRole("menu")).toBeFalsy();
98
+
83
99
  _userEvent["default"].click(dropdown);
100
+
84
101
  expect(queryByRole("menu")).toBeTruthy();
85
102
  expect(getByText("Amazon")).toBeTruthy();
86
103
  expect(getByText("Ebay")).toBeTruthy();
87
104
  expect(getByText("Wallapop")).toBeTruthy();
88
105
  expect(getByText("Aliexpress")).toBeTruthy();
106
+
89
107
  _userEvent["default"].click(dropdown);
108
+
90
109
  expect(queryByRole("menu")).toBeFalsy();
91
110
  });
92
111
  test("Button trigger is not interactable when disabled", function () {
93
112
  var _render3 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Dropdown["default"], {
94
- disabled: true,
95
- options: options,
96
- label: "dropdown-test"
97
- })),
98
- getByRole = _render3.getByRole,
99
- queryByRole = _render3.queryByRole,
100
- queryByText = _render3.queryByText;
113
+ disabled: true,
114
+ options: options,
115
+ label: "dropdown-test"
116
+ })),
117
+ getByRole = _render3.getByRole,
118
+ queryByRole = _render3.queryByRole,
119
+ queryByText = _render3.queryByText;
120
+
101
121
  var dropdown = getByRole("button");
102
122
  expect(queryByRole("menu")).toBeFalsy();
123
+
103
124
  _userEvent["default"].click(dropdown);
125
+
104
126
  expect(queryByRole("menu")).toBeFalsy();
105
127
  expect(queryByText("Amazon")).toBeFalsy();
128
+
106
129
  _userEvent["default"].click(dropdown);
130
+
107
131
  expect(queryByRole("menu")).toBeFalsy();
108
132
  expect(dropdown.getAttribute("aria-expanded")).toBeNull();
109
133
  });
110
134
  test("onSelectOption function is called correctly when an option is clicked", function () {
111
135
  var onSelectOption = jest.fn();
136
+
112
137
  var _render4 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Dropdown["default"], {
113
- options: options,
114
- onSelectOption: onSelectOption,
115
- label: "dropdown-test"
116
- })),
117
- getByText = _render4.getByText;
138
+ options: options,
139
+ onSelectOption: onSelectOption,
140
+ label: "dropdown-test"
141
+ })),
142
+ getByText = _render4.getByText;
143
+
118
144
  var dropdown = getByText("dropdown-test");
145
+
119
146
  _userEvent["default"].click(dropdown);
147
+
120
148
  var option = getByText("Aliexpress");
149
+
121
150
  _userEvent["default"].click(option);
151
+
122
152
  expect(onSelectOption).toHaveBeenCalledWith("4");
123
153
  });
124
154
  test("When expandOnHover is true, the dropdown trigger shows and hides the menu when it is hovered", function () {
125
155
  var _render5 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Dropdown["default"], {
126
- options: options,
127
- expandOnHover: true,
128
- label: "dropdown-test"
129
- })),
130
- queryByText = _render5.queryByText,
131
- getByRole = _render5.getByRole,
132
- queryByRole = _render5.queryByRole;
156
+ options: options,
157
+ expandOnHover: true,
158
+ label: "dropdown-test"
159
+ })),
160
+ queryByText = _render5.queryByText,
161
+ getByRole = _render5.getByRole,
162
+ queryByRole = _render5.queryByRole;
163
+
133
164
  expect(queryByText("option-test")).toBeFalsy();
134
165
  expect(queryByRole("menu")).toBeFalsy();
166
+
135
167
  _react2.fireEvent.mouseOver(getByRole("button"));
168
+
136
169
  var menu = getByRole("menu");
137
170
  expect(menu).toBeTruthy();
138
171
  expect(document.activeElement === menu).toBeTruthy();
@@ -140,30 +173,38 @@ describe("Dropdown component tests", function () {
140
173
  });
141
174
  test("The menu is closed when the dropdown loses the focus (blur)", function () {
142
175
  var _render6 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Dropdown["default"], {
143
- options: options,
144
- label: "dropdown-test"
145
- })),
146
- getByRole = _render6.getByRole,
147
- queryByRole = _render6.queryByRole;
176
+ options: options,
177
+ label: "dropdown-test"
178
+ })),
179
+ getByRole = _render6.getByRole,
180
+ queryByRole = _render6.queryByRole;
181
+
148
182
  var dropdown = getByRole("button");
183
+
149
184
  _userEvent["default"].click(dropdown);
185
+
150
186
  expect(getByRole("menu")).toBeTruthy();
187
+
151
188
  _react2.fireEvent.blur(getByRole("menu"));
189
+
152
190
  expect(queryByRole("menu")).toBeFalsy();
153
191
  });
154
192
  test("Menu button key events - Arrow up opens the list and moves the focus to the last menu item", function () {
155
193
  var _render7 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Dropdown["default"], {
156
- options: options,
157
- label: "dropdown-test"
158
- })),
159
- getByRole = _render7.getByRole;
194
+ options: options,
195
+ label: "dropdown-test"
196
+ })),
197
+ getByRole = _render7.getByRole;
198
+
160
199
  var dropdown = getByRole("button");
200
+
161
201
  _react2.fireEvent.keyDown(dropdown, {
162
202
  key: "ArrowUp",
163
203
  code: "ArrowUp",
164
204
  keyCode: 38,
165
205
  charCode: 38
166
206
  });
207
+
167
208
  var menu = getByRole("menu");
168
209
  expect(menu).toBeTruthy();
169
210
  expect(document.activeElement === menu).toBeTruthy();
@@ -171,17 +212,20 @@ describe("Dropdown component tests", function () {
171
212
  });
172
213
  test("Menu button key events - Arrow down opens the list and moves the focus to the first menu item", function () {
173
214
  var _render8 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Dropdown["default"], {
174
- options: options,
175
- label: "dropdown-test"
176
- })),
177
- getByRole = _render8.getByRole;
215
+ options: options,
216
+ label: "dropdown-test"
217
+ })),
218
+ getByRole = _render8.getByRole;
219
+
178
220
  var dropdown = getByRole("button");
221
+
179
222
  _react2.fireEvent.keyDown(dropdown, {
180
223
  key: "ArrowDown",
181
224
  code: "ArrowDown",
182
225
  keyCode: 40,
183
226
  charCode: 40
184
227
  });
228
+
185
229
  var menu = getByRole("menu");
186
230
  expect(menu).toBeTruthy();
187
231
  expect(document.activeElement === menu).toBeTruthy();
@@ -189,17 +233,20 @@ describe("Dropdown component tests", function () {
189
233
  });
190
234
  test("Menu button key events - Enter opens the list and moves the focus to the first menu item", function () {
191
235
  var _render9 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Dropdown["default"], {
192
- options: options,
193
- label: "dropdown-test"
194
- })),
195
- getByRole = _render9.getByRole;
236
+ options: options,
237
+ label: "dropdown-test"
238
+ })),
239
+ getByRole = _render9.getByRole;
240
+
196
241
  var dropdown = getByRole("button");
242
+
197
243
  _react2.fireEvent.keyDown(dropdown, {
198
244
  key: "Enter",
199
245
  code: "Enter",
200
246
  keyCode: 13,
201
247
  charCode: 13
202
248
  });
249
+
203
250
  var menu = getByRole("menu");
204
251
  expect(menu).toBeTruthy();
205
252
  expect(document.activeElement === menu).toBeTruthy();
@@ -207,17 +254,20 @@ describe("Dropdown component tests", function () {
207
254
  });
208
255
  test("Menu button key events - Space opens the list and moves the focus to the first menu item", function () {
209
256
  var _render10 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Dropdown["default"], {
210
- options: options,
211
- label: "dropdown-test"
212
- })),
213
- getByRole = _render10.getByRole;
257
+ options: options,
258
+ label: "dropdown-test"
259
+ })),
260
+ getByRole = _render10.getByRole;
261
+
214
262
  var dropdown = getByRole("button");
263
+
215
264
  _react2.fireEvent.keyDown(dropdown, {
216
265
  key: " ",
217
266
  code: "Space",
218
267
  keyCode: 32,
219
268
  charCode: 32
220
269
  });
270
+
221
271
  var menu = getByRole("menu");
222
272
  expect(menu).toBeTruthy();
223
273
  expect(document.activeElement === menu).toBeTruthy();
@@ -225,255 +275,312 @@ describe("Dropdown component tests", function () {
225
275
  });
226
276
  test("Menu key events - Arrow up moves the focus to the previous menu item", function () {
227
277
  var onSelectOption = jest.fn();
278
+
228
279
  var _render11 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Dropdown["default"], {
229
- onSelectOption: onSelectOption,
230
- options: options,
231
- label: "dropdown-test"
232
- })),
233
- getByRole = _render11.getByRole;
280
+ onSelectOption: onSelectOption,
281
+ options: options,
282
+ label: "dropdown-test"
283
+ })),
284
+ getByRole = _render11.getByRole;
285
+
234
286
  _react2.fireEvent.keyDown(getByRole("button"), {
235
287
  key: "ArrowUp",
236
288
  code: "ArrowUp",
237
289
  keyCode: 38,
238
290
  charCode: 38
239
291
  });
292
+
240
293
  var menu = getByRole("menu");
294
+
241
295
  _react2.fireEvent.keyDown(menu, {
242
296
  key: "ArrowUp",
243
297
  code: "ArrowUp",
244
298
  keyCode: 38,
245
299
  charCode: 38
246
300
  });
301
+
247
302
  expect(document.activeElement === menu).toBeTruthy();
248
303
  expect(menu.getAttribute("aria-activedescendant")).toBe("option-2");
304
+
249
305
  _react2.fireEvent.keyDown(menu, {
250
306
  key: "Enter",
251
307
  code: "Enter",
252
308
  keyCode: 13,
253
309
  charCode: 13
254
310
  });
311
+
255
312
  expect(onSelectOption).toHaveBeenCalledWith("3");
256
313
  });
257
314
  test("Menu key events - Arrow up, if focus is on the first menu item, moves focus to the last menu item.", function () {
258
315
  var onSelectOption = jest.fn();
316
+
259
317
  var _render12 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Dropdown["default"], {
260
- onSelectOption: onSelectOption,
261
- options: options,
262
- label: "dropdown-test"
263
- })),
264
- getByRole = _render12.getByRole;
318
+ onSelectOption: onSelectOption,
319
+ options: options,
320
+ label: "dropdown-test"
321
+ })),
322
+ getByRole = _render12.getByRole;
323
+
265
324
  _userEvent["default"].click(getByRole("button"));
325
+
266
326
  var menu = getByRole("menu");
327
+
267
328
  _react2.fireEvent.keyDown(menu, {
268
329
  key: "ArrowUp",
269
330
  code: "ArrowUp",
270
331
  keyCode: 38,
271
332
  charCode: 38
272
333
  });
334
+
273
335
  expect(document.activeElement === menu).toBeTruthy();
274
336
  expect(menu.getAttribute("aria-activedescendant")).toBe("option-3");
337
+
275
338
  _react2.fireEvent.keyDown(menu, {
276
339
  key: "Enter",
277
340
  code: "Enter",
278
341
  keyCode: 13,
279
342
  charCode: 13
280
343
  });
344
+
281
345
  expect(onSelectOption).toHaveBeenCalledWith("4");
282
346
  });
283
347
  test("Menu key events - Arrow down moves the focus to the next menu item", function () {
284
348
  var onSelectOption = jest.fn();
349
+
285
350
  var _render13 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Dropdown["default"], {
286
- onSelectOption: onSelectOption,
287
- options: options,
288
- label: "dropdown-test"
289
- })),
290
- getByRole = _render13.getByRole;
351
+ onSelectOption: onSelectOption,
352
+ options: options,
353
+ label: "dropdown-test"
354
+ })),
355
+ getByRole = _render13.getByRole;
356
+
291
357
  _userEvent["default"].click(getByRole("button"));
358
+
292
359
  var menu = getByRole("menu");
360
+
293
361
  _react2.fireEvent.keyDown(menu, {
294
362
  key: "ArrowDown",
295
363
  code: "ArrowDown",
296
364
  keyCode: 40,
297
365
  charCode: 40
298
366
  });
367
+
299
368
  _react2.fireEvent.keyDown(menu, {
300
369
  key: "ArrowDown",
301
370
  code: "ArrowDown",
302
371
  keyCode: 40,
303
372
  charCode: 40
304
373
  });
374
+
305
375
  expect(document.activeElement === menu).toBeTruthy();
306
376
  expect(menu.getAttribute("aria-activedescendant")).toBe("option-2");
377
+
307
378
  _react2.fireEvent.keyDown(menu, {
308
379
  key: "Enter",
309
380
  code: "Enter",
310
381
  keyCode: 13,
311
382
  charCode: 13
312
383
  });
384
+
313
385
  expect(onSelectOption).toHaveBeenCalledWith("3");
314
386
  });
315
387
  test("Menu key events - Arrow down, if focus is on the last menu item, moves focus to the first menu item. ", function () {
316
388
  var onSelectOption = jest.fn();
389
+
317
390
  var _render14 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Dropdown["default"], {
318
- onSelectOption: onSelectOption,
319
- options: options,
320
- label: "dropdown-test"
321
- })),
322
- getByRole = _render14.getByRole;
391
+ onSelectOption: onSelectOption,
392
+ options: options,
393
+ label: "dropdown-test"
394
+ })),
395
+ getByRole = _render14.getByRole;
396
+
323
397
  _react2.fireEvent.keyDown(getByRole("button"), {
324
398
  key: "ArrowUp",
325
399
  code: "ArrowUp",
326
400
  keyCode: 38,
327
401
  charCode: 38
328
402
  });
403
+
329
404
  var menu = getByRole("menu");
405
+
330
406
  _react2.fireEvent.keyDown(menu, {
331
407
  key: "ArrowDown",
332
408
  code: "ArrowDown",
333
409
  keyCode: 40,
334
410
  charCode: 40
335
411
  });
412
+
336
413
  expect(document.activeElement === menu).toBeTruthy();
337
414
  expect(menu.getAttribute("aria-activedescendant")).toBe("option-0");
415
+
338
416
  _react2.fireEvent.keyDown(menu, {
339
417
  key: "Enter",
340
418
  code: "Enter",
341
419
  keyCode: 13,
342
420
  charCode: 13
343
421
  });
422
+
344
423
  expect(onSelectOption).toHaveBeenCalledWith("1");
345
424
  });
346
425
  test("Menu key events - Enter key selects the current focused item and closes the menu", function () {
347
426
  var onSelectOption = jest.fn();
427
+
348
428
  var _render15 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Dropdown["default"], {
349
- onSelectOption: onSelectOption,
350
- options: options,
351
- label: "dropdown-test"
352
- })),
353
- getByRole = _render15.getByRole,
354
- queryByRole = _render15.queryByRole;
429
+ onSelectOption: onSelectOption,
430
+ options: options,
431
+ label: "dropdown-test"
432
+ })),
433
+ getByRole = _render15.getByRole,
434
+ queryByRole = _render15.queryByRole;
435
+
355
436
  _userEvent["default"].click(getByRole("button"));
437
+
356
438
  _react2.fireEvent.keyDown(getByRole("menu"), {
357
439
  key: "Enter",
358
440
  code: "Enter",
359
441
  keyCode: 13,
360
442
  charCode: 13
361
443
  });
444
+
362
445
  expect(onSelectOption).toHaveBeenCalledWith("1");
363
446
  expect(queryByRole("menu")).toBeFalsy();
364
447
  expect(document.activeElement === getByRole("button")).toBeTruthy();
365
448
  });
366
449
  test("Menu key events - Esc closes the menu and sets focus on the menu button", function () {
367
450
  var _render16 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Dropdown["default"], {
368
- options: options,
369
- label: "dropdown-test"
370
- })),
371
- getByRole = _render16.getByRole,
372
- queryByRole = _render16.queryByRole;
451
+ options: options,
452
+ label: "dropdown-test"
453
+ })),
454
+ getByRole = _render16.getByRole,
455
+ queryByRole = _render16.queryByRole;
456
+
373
457
  _userEvent["default"].click(getByRole("button"));
458
+
374
459
  _react2.fireEvent.keyDown(getByRole("menu"), {
375
460
  key: "Esc",
376
461
  code: "Esc",
377
462
  keyCode: 27,
378
463
  charCode: 27
379
464
  });
465
+
380
466
  expect(queryByRole("menu")).toBeFalsy();
381
467
  expect(document.activeElement === getByRole("button")).toBeTruthy();
382
468
  });
383
469
  test("Menu key events - Home moves the focus to the first menu item", function () {
384
470
  var _render17 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Dropdown["default"], {
385
- options: options,
386
- label: "dropdown-test-1"
387
- })),
388
- getByRole = _render17.getByRole;
471
+ options: options,
472
+ label: "dropdown-test-1"
473
+ })),
474
+ getByRole = _render17.getByRole;
475
+
389
476
  _react2.fireEvent.keyDown(getByRole("button"), {
390
477
  key: "ArrowUp",
391
478
  code: "ArrowUp",
392
479
  keyCode: 38,
393
480
  charCode: 38
394
481
  });
482
+
395
483
  var menu = getByRole("menu");
396
484
  expect(menu.getAttribute("aria-activedescendant")).toBe("option-3");
485
+
397
486
  _react2.fireEvent.keyDown(menu, {
398
487
  key: "Home",
399
488
  code: "Home",
400
489
  keyCode: 36,
401
490
  charCode: 36
402
491
  });
492
+
403
493
  expect(menu.getAttribute("aria-activedescendant")).toBe("option-0");
404
494
  });
405
495
  test("Menu key events - End moves the focus to the last menu item", function () {
406
496
  var _render18 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Dropdown["default"], {
407
- options: options,
408
- label: "dropdown-test-1"
409
- })),
410
- getByRole = _render18.getByRole;
497
+ options: options,
498
+ label: "dropdown-test-1"
499
+ })),
500
+ getByRole = _render18.getByRole;
501
+
411
502
  _userEvent["default"].click(getByRole("button"));
503
+
412
504
  var menu = getByRole("menu");
413
505
  expect(menu.getAttribute("aria-activedescendant")).toBe("option-0");
506
+
414
507
  _react2.fireEvent.keyDown(menu, {
415
508
  key: "End",
416
509
  code: "End",
417
510
  keyCode: 35,
418
511
  charCode: 35
419
512
  });
513
+
420
514
  expect(menu.getAttribute("aria-activedescendant")).toBe("option-3");
421
515
  });
422
516
  test("Menu key events - PageUp moves the focus to the first menu item", function () {
423
517
  var _render19 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Dropdown["default"], {
424
- options: options,
425
- label: "dropdown-test-1"
426
- })),
427
- getByRole = _render19.getByRole;
518
+ options: options,
519
+ label: "dropdown-test-1"
520
+ })),
521
+ getByRole = _render19.getByRole;
522
+
428
523
  _react2.fireEvent.keyDown(getByRole("button"), {
429
524
  key: "ArrowUp",
430
525
  code: "ArrowUp",
431
526
  keyCode: 38,
432
527
  charCode: 38
433
528
  });
529
+
434
530
  var menu = getByRole("menu");
435
531
  expect(menu.getAttribute("aria-activedescendant")).toBe("option-3");
532
+
436
533
  _react2.fireEvent.keyDown(menu, {
437
534
  key: "PageUp",
438
535
  code: "PageUp",
439
536
  keyCode: 33,
440
537
  charCode: 33
441
538
  });
539
+
442
540
  expect(menu.getAttribute("aria-activedescendant")).toBe("option-0");
443
541
  });
444
542
  test("Menu key events - PageDown moves the focus to the last menu item", function () {
445
543
  var _render20 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Dropdown["default"], {
446
- options: options,
447
- label: "dropdown-test-1"
448
- })),
449
- getByRole = _render20.getByRole;
544
+ options: options,
545
+ label: "dropdown-test-1"
546
+ })),
547
+ getByRole = _render20.getByRole;
548
+
450
549
  _userEvent["default"].click(getByRole("button"));
550
+
451
551
  var menu = getByRole("menu");
452
552
  expect(menu.getAttribute("aria-activedescendant")).toBe("option-0");
553
+
453
554
  _react2.fireEvent.keyDown(menu, {
454
555
  key: "PageDown",
455
556
  code: "PageDown",
456
557
  keyCode: 34,
457
558
  charCode: 34
458
559
  });
560
+
459
561
  expect(menu.getAttribute("aria-activedescendant")).toBe("option-3");
460
562
  });
461
563
  test("Menu key events - Tab closes the menu and sets focus to the next element", function () {
462
564
  var _render21 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Dropdown["default"], {
463
- options: options,
464
- label: "dropdown-test-1"
465
- })),
466
- getByRole = _render21.getByRole,
467
- queryByRole = _render21.queryByRole;
565
+ options: options,
566
+ label: "dropdown-test-1"
567
+ })),
568
+ getByRole = _render21.getByRole,
569
+ queryByRole = _render21.queryByRole;
570
+
468
571
  var dropdown = getByRole("button");
572
+
469
573
  _userEvent["default"].click(dropdown);
574
+
470
575
  expect(getByRole("menu")).toBeTruthy();
576
+
471
577
  _react2.fireEvent.keyDown(getByRole("menu"), {
472
578
  key: "Tab",
473
579
  code: "Tab",
474
580
  keyCode: 9,
475
581
  charCode: 9
476
582
  });
583
+
477
584
  expect(queryByRole("menu")).toBeFalsy();
478
585
  });
479
586
  });