@dxc-technology/halstack-react 12.0.0 → 12.0.1

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 (195) hide show
  1. package/HalstackContext.d.ts +0 -3
  2. package/HalstackContext.js +2 -6
  3. package/accordion/Accordion.accessibility.test.d.ts +1 -0
  4. package/accordion/Accordion.accessibility.test.js +1 -1
  5. package/accordion/Accordion.js +5 -8
  6. package/accordion/Accordion.test.d.ts +1 -0
  7. package/accordion/Accordion.test.js +3 -3
  8. package/accordion-group/AccordionGroup.accessibility.test.d.ts +1 -0
  9. package/accordion-group/AccordionGroup.accessibility.test.js +8 -14
  10. package/accordion-group/AccordionGroup.test.d.ts +1 -0
  11. package/accordion-group/AccordionGroup.test.js +5 -9
  12. package/action-icon/ActionIcon.accessibility.test.d.ts +1 -0
  13. package/action-icon/ActionIcon.accessibility.test.js +1 -1
  14. package/action-icon/ActionIcon.test.d.ts +1 -0
  15. package/action-icon/ActionIcon.test.js +1 -1
  16. package/alert/Alert.accessibility.test.d.ts +1 -0
  17. package/alert/Alert.accessibility.test.js +1 -1
  18. package/alert/Alert.test.d.ts +1 -0
  19. package/alert/Alert.test.js +1 -1
  20. package/badge/Badge.accessibility.test.d.ts +1 -0
  21. package/badge/Badge.accessibility.test.js +2 -2
  22. package/badge/Badge.test.d.ts +1 -0
  23. package/badge/Badge.test.js +2 -2
  24. package/box/Box.accessibility.test.d.ts +1 -0
  25. package/box/Box.accessibility.test.js +1 -1
  26. package/box/Box.test.d.ts +1 -0
  27. package/box/Box.test.js +1 -1
  28. package/bulleted-list/BulletedList.accessibility.test.d.ts +1 -0
  29. package/button/Button.accessibility.test.d.ts +1 -0
  30. package/button/Button.accessibility.test.js +1 -1
  31. package/button/Button.test.d.ts +1 -0
  32. package/button/Button.test.js +1 -1
  33. package/card/Card.accessibility.test.d.ts +1 -0
  34. package/card/Card.accessibility.test.js +1 -1
  35. package/card/Card.test.d.ts +1 -0
  36. package/card/Card.test.js +1 -1
  37. package/checkbox/Checkbox.accessibility.test.d.ts +1 -0
  38. package/checkbox/Checkbox.accessibility.test.js +1 -1
  39. package/checkbox/Checkbox.js +5 -8
  40. package/checkbox/Checkbox.test.d.ts +1 -0
  41. package/checkbox/Checkbox.test.js +1 -1
  42. package/chip/Chip.accessibility.test.d.ts +1 -0
  43. package/chip/Chip.accessibility.test.js +3 -1
  44. package/chip/Chip.js +10 -21
  45. package/chip/Chip.stories.tsx +78 -46
  46. package/chip/Chip.test.d.ts +1 -0
  47. package/chip/Chip.test.js +1 -1
  48. package/chip/types.d.ts +35 -12
  49. package/common/fonts.css +2 -0
  50. package/common/variables.d.ts +0 -3
  51. package/common/variables.js +1 -4
  52. package/contextual-menu/ContextualMenu.accessibility.test.d.ts +1 -0
  53. package/contextual-menu/ContextualMenu.accessibility.test.js +2 -1
  54. package/contextual-menu/ContextualMenu.test.d.ts +1 -0
  55. package/contextual-menu/ContextualMenu.test.js +1 -1
  56. package/date-input/DateInput.accessibility.test.d.ts +1 -0
  57. package/date-input/DateInput.accessibility.test.js +4 -2
  58. package/date-input/DateInput.js +15 -15
  59. package/date-input/DateInput.test.d.ts +1 -0
  60. package/date-input/DateInput.test.js +9 -8
  61. package/dialog/Dialog.accessibility.test.d.ts +1 -0
  62. package/dialog/Dialog.accessibility.test.js +1 -1
  63. package/dialog/Dialog.stories.tsx +1 -2
  64. package/dialog/Dialog.test.d.ts +1 -0
  65. package/dialog/Dialog.test.js +112 -48
  66. package/divider/Divider.accessibility.test.d.ts +1 -0
  67. package/divider/Divider.test.d.ts +1 -0
  68. package/dropdown/Dropdown.accessibility.test.d.ts +1 -0
  69. package/dropdown/Dropdown.accessibility.test.js +6 -2
  70. package/dropdown/Dropdown.js +11 -12
  71. package/dropdown/Dropdown.test.d.ts +1 -0
  72. package/dropdown/Dropdown.test.js +82 -52
  73. package/file-input/FileInput.accessibility.test.d.ts +1 -0
  74. package/file-input/FileInput.accessibility.test.js +25 -18
  75. package/file-input/FileInput.js +1 -4
  76. package/file-input/FileInput.test.d.ts +1 -0
  77. package/file-input/FileInput.test.js +44 -22
  78. package/footer/Footer.accessibility.test.d.ts +1 -0
  79. package/footer/Footer.accessibility.test.js +1 -1
  80. package/footer/Footer.test.d.ts +1 -0
  81. package/footer/Footer.test.js +1 -1
  82. package/header/Header.accessibility.test.d.ts +1 -0
  83. package/header/Header.accessibility.test.js +5 -4
  84. package/header/Header.test.d.ts +1 -0
  85. package/header/Header.test.js +1 -1
  86. package/heading/Heading.accessibility.test.d.ts +1 -0
  87. package/heading/Heading.accessibility.test.js +1 -1
  88. package/heading/Heading.test.d.ts +1 -0
  89. package/heading/Heading.test.js +1 -14
  90. package/icon/Icon.accessibility.test.d.ts +1 -0
  91. package/image/Image.accessibility.test.d.ts +1 -0
  92. package/link/Link.accessibility.test.d.ts +1 -0
  93. package/link/Link.accessibility.test.js +2 -2
  94. package/link/Link.test.d.ts +1 -0
  95. package/link/Link.test.js +1 -1
  96. package/main.d.ts +1 -0
  97. package/main.js +1 -0
  98. package/nav-tabs/NavTabs.accessibility.test.d.ts +1 -0
  99. package/nav-tabs/NavTabs.accessibility.test.js +1 -1
  100. package/nav-tabs/NavTabs.js +18 -3
  101. package/nav-tabs/NavTabs.stories.tsx +18 -3
  102. package/nav-tabs/NavTabs.test.d.ts +1 -0
  103. package/nav-tabs/NavTabs.test.js +1 -1
  104. package/nav-tabs/Tab.js +1 -1
  105. package/number-input/NumberInput.accessibility.test.d.ts +1 -0
  106. package/number-input/NumberInput.accessibility.test.js +1 -1
  107. package/number-input/NumberInput.test.d.ts +1 -0
  108. package/number-input/NumberInput.test.js +5 -5
  109. package/package.json +6 -6
  110. package/paginator/Paginator.accessibility.test.d.ts +1 -0
  111. package/paginator/Paginator.accessibility.test.js +1 -1
  112. package/paginator/Paginator.test.d.ts +1 -0
  113. package/paginator/Paginator.test.js +1 -1
  114. package/paragraph/Paragraph.accessibility.test.d.ts +1 -0
  115. package/password-input/PasswordInput.accessibility.test.d.ts +1 -0
  116. package/password-input/PasswordInput.accessibility.test.js +1 -1
  117. package/password-input/PasswordInput.test.d.ts +1 -0
  118. package/password-input/PasswordInput.test.js +1 -1
  119. package/progress-bar/ProgressBar.accessibility.test.d.ts +1 -0
  120. package/progress-bar/ProgressBar.accessibility.test.js +1 -1
  121. package/progress-bar/ProgressBar.test.d.ts +1 -0
  122. package/progress-bar/ProgressBar.test.js +1 -1
  123. package/quick-nav/QuickNav.accessibility.test.d.ts +1 -0
  124. package/radio-group/Radio.js +5 -8
  125. package/radio-group/RadioGroup.accessibility.test.d.ts +1 -0
  126. package/radio-group/RadioGroup.accessibility.test.js +1 -1
  127. package/radio-group/RadioGroup.js +12 -15
  128. package/radio-group/RadioGroup.test.d.ts +1 -0
  129. package/radio-group/RadioGroup.test.js +3 -5
  130. package/resultset-table/ResultsetTable.accessibility.test.d.ts +1 -0
  131. package/resultset-table/ResultsetTable.accessibility.test.js +1 -1
  132. package/resultset-table/ResultsetTable.test.d.ts +1 -0
  133. package/resultset-table/ResultsetTable.test.js +1 -2
  134. package/select/Listbox.js +6 -10
  135. package/select/Select.accessibility.test.d.ts +1 -0
  136. package/select/Select.accessibility.test.js +3 -3
  137. package/select/Select.js +15 -17
  138. package/select/Select.test.d.ts +1 -0
  139. package/select/Select.test.js +6 -3
  140. package/sidenav/Sidenav.accessibility.test.d.ts +1 -0
  141. package/sidenav/Sidenav.accessibility.test.js +1 -1
  142. package/sidenav/Sidenav.test.d.ts +1 -0
  143. package/sidenav/Sidenav.test.js +1 -1
  144. package/slider/Slider.accessibility.test.d.ts +1 -0
  145. package/slider/Slider.accessibility.test.js +1 -1
  146. package/slider/Slider.js +8 -11
  147. package/slider/Slider.stories.tsx +180 -0
  148. package/slider/Slider.test.d.ts +1 -0
  149. package/slider/Slider.test.js +12 -9
  150. package/spinner/Spinner.accessibility.test.d.ts +1 -0
  151. package/spinner/Spinner.accessibility.test.js +2 -2
  152. package/spinner/Spinner.test.d.ts +1 -0
  153. package/spinner/Spinner.test.js +1 -1
  154. package/status-light/StatusLight.accessibility.test.d.ts +1 -0
  155. package/status-light/StatusLight.accessibility.test.js +2 -2
  156. package/status-light/StatusLight.test.d.ts +1 -0
  157. package/status-light/StatusLight.test.js +1 -1
  158. package/switch/Switch.accessibility.test.d.ts +1 -0
  159. package/switch/Switch.accessibility.test.js +1 -1
  160. package/switch/Switch.js +5 -8
  161. package/switch/Switch.test.d.ts +1 -0
  162. package/switch/Switch.test.js +1 -1
  163. package/table/Table.accessibility.test.d.ts +1 -0
  164. package/table/Table.accessibility.test.js +1 -1
  165. package/table/Table.test.d.ts +1 -0
  166. package/table/Table.test.js +1 -2
  167. package/tabs/Tabs.accessibility.test.d.ts +1 -0
  168. package/tabs/Tabs.accessibility.test.js +1 -1
  169. package/tabs/Tabs.test.d.ts +1 -0
  170. package/tabs/Tabs.test.js +1 -1
  171. package/tag/Tag.accessibility.test.d.ts +1 -0
  172. package/tag/Tag.accessibility.test.js +1 -1
  173. package/tag/Tag.test.d.ts +1 -0
  174. package/tag/Tag.test.js +1 -1
  175. package/text-input/TextInput.accessibility.test.d.ts +1 -0
  176. package/text-input/TextInput.accessibility.test.js +1 -1
  177. package/text-input/TextInput.js +19 -21
  178. package/text-input/TextInput.test.d.ts +1 -0
  179. package/text-input/TextInput.test.js +1 -1
  180. package/textarea/Textarea.accessibility.test.d.ts +1 -0
  181. package/textarea/Textarea.accessibility.test.js +1 -1
  182. package/textarea/Textarea.js +1 -4
  183. package/textarea/Textarea.test.d.ts +1 -0
  184. package/textarea/Textarea.test.js +1 -1
  185. package/toggle-group/ToggleGroup.accessibility.test.d.ts +1 -0
  186. package/toggle-group/ToggleGroup.accessibility.test.js +2 -2
  187. package/toggle-group/ToggleGroup.js +5 -8
  188. package/toggle-group/ToggleGroup.test.d.ts +1 -0
  189. package/toggle-group/ToggleGroup.test.js +1 -1
  190. package/typography/Typography.accessibility.test.d.ts +1 -0
  191. package/useTheme.d.ts +0 -3
  192. package/wizard/Wizard.accessibility.test.d.ts +1 -0
  193. package/wizard/Wizard.accessibility.test.js +1 -1
  194. package/wizard/Wizard.test.d.ts +1 -0
  195. package/wizard/Wizard.test.js +1 -1
@@ -1,20 +1,55 @@
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
+ (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
+ return ResizeObserver;
52
+ }();
18
53
  var options = [{
19
54
  label: "Female",
20
55
  value: "female"
@@ -77,11 +112,40 @@ describe("Dialog component tests", function () {
77
112
  });
78
113
  expect(onCloseClick).toHaveBeenCalled();
79
114
  });
115
+ 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() {
116
+ var onCloseClick, _render6, getByRole, calendarAction;
117
+ return _regenerator["default"].wrap(function _callee$(_context) {
118
+ while (1) switch (_context.prev = _context.next) {
119
+ case 0:
120
+ onCloseClick = jest.fn();
121
+ _render6 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Dialog["default"], {
122
+ onCloseClick: onCloseClick
123
+ }, /*#__PURE__*/_react["default"].createElement(_DateInput["default"], {
124
+ label: "With format M-dd-yyyy",
125
+ format: "M-dd-yyyy"
126
+ }))), getByRole = _render6.getByRole;
127
+ calendarAction = getByRole("combobox");
128
+ _context.next = 5;
129
+ return _userEvent["default"].click(calendarAction);
130
+ case 5:
131
+ _react2.fireEvent.keyDown(document.activeElement, {
132
+ key: "Escape",
133
+ code: "Escape",
134
+ keyCode: 27,
135
+ charCode: 27
136
+ });
137
+ expect(onCloseClick).not.toHaveBeenCalled();
138
+ case 7:
139
+ case "end":
140
+ return _context.stop();
141
+ }
142
+ }, _callee);
143
+ })));
80
144
  });
81
145
  describe("Dialog component: Focus lock tests", function () {
82
146
  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;
147
+ var _render7 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Dialog["default"], null, "example-dialog")),
148
+ getByRole = _render7.getByRole;
85
149
  var button = getByRole("button");
86
150
  var dialog = getByRole("dialog");
87
151
  expect(document.activeElement).toEqual(button);
@@ -95,100 +159,100 @@ describe("Dialog component: Focus lock tests", function () {
95
159
  expect(document.activeElement).toEqual(button);
96
160
  });
97
161
  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"], {
162
+ var _render8 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Dialog["default"], null, /*#__PURE__*/_react["default"].createElement(_Button["default"], {
99
163
  label: "Accept"
100
164
  }))),
101
- getAllByRole = _render7.getAllByRole;
165
+ getAllByRole = _render8.getAllByRole;
102
166
  var button = getAllByRole("button")[0];
103
167
  expect(document.activeElement).toEqual(button);
104
168
  expect(button.getAttribute("aria-label")).not.toBe("Close dialog");
105
169
  });
106
170
  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"], {
171
+ var _render9 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Dialog["default"], null, /*#__PURE__*/_react["default"].createElement(_Card["default"], {
108
172
  linkHref: "https://developer.dxc.com/halstack/next/components/card/"
109
173
  }, "example-card"))),
110
- getByRole = _render8.getByRole;
174
+ getByRole = _render9.getByRole;
111
175
  var card = getByRole("link");
112
176
  expect(document.activeElement).toEqual(card);
113
177
  });
114
178
  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"], {
179
+ var _render10 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Dialog["default"], null, /*#__PURE__*/_react["default"].createElement(_Checkbox["default"], {
116
180
  label: "Name"
117
181
  }))),
118
- getByRole = _render9.getByRole;
182
+ getByRole = _render10.getByRole;
119
183
  var checkbox = getByRole("checkbox");
120
184
  expect(document.activeElement).toEqual(checkbox);
121
185
  });
122
186
  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"], {
187
+ 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
188
  href: "#"
125
189
  }, "Link"), " to another page.")),
126
- getByRole = _render10.getByRole;
190
+ getByRole = _render11.getByRole;
127
191
  var link = getByRole("link");
128
192
  expect(document.activeElement).toEqual(link);
129
193
  });
130
194
  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"], {
195
+ var _render12 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Dialog["default"], null, /*#__PURE__*/_react["default"].createElement(_RadioGroup["default"], {
132
196
  label: "Example",
133
197
  options: options
134
198
  }))),
135
- getAllByRole = _render11.getAllByRole;
199
+ getAllByRole = _render12.getAllByRole;
136
200
  var checkedRadio = getAllByRole("radio")[0];
137
201
  expect(document.activeElement).toEqual(checkedRadio);
138
202
  });
139
203
  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"], {
204
+ var _render13 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Dialog["default"], null, /*#__PURE__*/_react["default"].createElement(_Select["default"], {
141
205
  label: "Country",
142
206
  options: options
143
207
  }))),
144
- getByRole = _render12.getByRole;
208
+ getByRole = _render13.getByRole;
145
209
  var select = getByRole("combobox");
146
210
  expect(document.activeElement).toEqual(select);
147
211
  });
148
212
  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"], {
213
+ var _render14 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Dialog["default"], null, /*#__PURE__*/_react["default"].createElement(_Slider["default"], {
150
214
  label: "label",
151
215
  minValue: 0,
152
216
  maxValue: 100,
153
217
  showLimitsValues: true
154
218
  }))),
155
- getByRole = _render13.getByRole;
219
+ getByRole = _render14.getByRole;
156
220
  var slider = getByRole("slider");
157
221
  expect(document.activeElement).toEqual(slider);
158
222
  });
159
223
  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"], {
224
+ var _render15 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Dialog["default"], null, /*#__PURE__*/_react["default"].createElement(_Switch["default"], {
161
225
  label: "Example"
162
226
  }))),
163
- getByRole = _render14.getByRole;
227
+ getByRole = _render15.getByRole;
164
228
  var switchButton = getByRole("switch");
165
229
  expect(document.activeElement).toEqual(switchButton);
166
230
  });
167
231
  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"], {
232
+ var _render16 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Dialog["default"], null, /*#__PURE__*/_react["default"].createElement(_TextInput["default"], {
169
233
  label: "Name"
170
234
  }))),
171
- getByRole = _render15.getByRole;
235
+ getByRole = _render16.getByRole;
172
236
  var input = getByRole("textbox");
173
237
  expect(document.activeElement).toEqual(input);
174
238
  });
175
239
  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"], {
240
+ var _render17 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Dialog["default"], null, /*#__PURE__*/_react["default"].createElement(_Textarea["default"], {
177
241
  label: "Name"
178
242
  }))),
179
- getByRole = _render16.getByRole;
243
+ getByRole = _render17.getByRole;
180
244
  var textarea = getByRole("textbox");
181
245
  expect(document.activeElement).toEqual(textarea);
182
246
  });
183
247
  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",
248
+ var _render18 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Dialog["default"], null, /*#__PURE__*/_react["default"].createElement("input", {
249
+ title: "Name",
186
250
  tabIndex: -1
187
251
  }), /*#__PURE__*/_react["default"].createElement("input", {
188
- label: "Name"
252
+ title: "Name"
189
253
  }))),
190
- getAllByRole = _render17.getAllByRole,
191
- getByRole = _render17.getByRole;
254
+ getAllByRole = _render18.getAllByRole,
255
+ getByRole = _render18.getByRole;
192
256
  var inputs = getAllByRole("textbox");
193
257
  var button = getByRole("button");
194
258
  expect(document.activeElement).toEqual(inputs[1]);
@@ -198,7 +262,7 @@ describe("Dialog component: Focus lock tests", function () {
198
262
  expect(document.activeElement).toEqual(inputs[1]);
199
263
  });
200
264
  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"], {
265
+ var _render19 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Dialog["default"], null, /*#__PURE__*/_react["default"].createElement(_Button["default"], {
202
266
  label: "Accept",
203
267
  disabled: true
204
268
  }), /*#__PURE__*/_react["default"].createElement(_Checkbox["default"], {
@@ -235,12 +299,12 @@ describe("Dialog component: Focus lock tests", function () {
235
299
  }), /*#__PURE__*/_react["default"].createElement(_Textarea["default"], {
236
300
  label: "Description"
237
301
  }))),
238
- getAllByRole = _render18.getAllByRole;
302
+ getAllByRole = _render19.getAllByRole;
239
303
  var textarea = getAllByRole("textbox")[2];
240
304
  expect(document.activeElement).toEqual(textarea);
241
305
  });
242
306
  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"], {
307
+ var _render20 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Dialog["default"], null, /*#__PURE__*/_react["default"].createElement(_Checkbox["default"], {
244
308
  label: "Accept",
245
309
  disabled: true
246
310
  }), /*#__PURE__*/_react["default"].createElement(_Textarea["default"], {
@@ -249,7 +313,7 @@ describe("Dialog component: Focus lock tests", function () {
249
313
  label: "Name",
250
314
  options: options
251
315
  }))),
252
- getByRole = _render19.getByRole;
316
+ getByRole = _render20.getByRole;
253
317
  var closeAction = getByRole("button");
254
318
  var textarea = getByRole("textbox");
255
319
  expect(document.activeElement).toEqual(textarea);
@@ -260,13 +324,13 @@ describe("Dialog component: Focus lock tests", function () {
260
324
  expect(document.activeElement).toEqual(textarea);
261
325
  });
262
326
  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",
327
+ var _render21 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Dialog["default"], null, /*#__PURE__*/_react["default"].createElement("input", {
328
+ title: "Name",
265
329
  style: {
266
330
  display: "none"
267
331
  }
268
332
  }), /*#__PURE__*/_react["default"].createElement("input", {
269
- label: "Name",
333
+ title: "Name",
270
334
  style: {
271
335
  visibility: "hidden"
272
336
  }
@@ -274,21 +338,21 @@ describe("Dialog component: Focus lock tests", function () {
274
338
  type: "hidden",
275
339
  name: "example"
276
340
  }))),
277
- getByRole = _render20.getByRole;
341
+ getByRole = _render21.getByRole;
278
342
  var closeAction = getByRole("button");
279
343
  expect(document.activeElement).toEqual(closeAction);
280
344
  _userEvent["default"].tab();
281
345
  expect(document.activeElement).toEqual(closeAction);
282
346
  });
283
347
  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"], {
348
+ var _render22 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement(_TextInput["default"], {
285
349
  label: "Name"
286
350
  }), /*#__PURE__*/_react["default"].createElement(_Dialog["default"], {
287
351
  isCloseVisible: false
288
352
  }, /*#__PURE__*/_react["default"].createElement("h2", null, "Policy agreement"), /*#__PURE__*/_react["default"].createElement("p", null, "Sample text.")), /*#__PURE__*/_react["default"].createElement(_TextInput["default"], {
289
353
  label: "Surname"
290
354
  }))),
291
- getAllByRole = _render21.getAllByRole;
355
+ getAllByRole = _render22.getAllByRole;
292
356
  var inputs = getAllByRole("textbox");
293
357
  var dialog = getAllByRole("dialog")[0];
294
358
  _userEvent["default"].tab();
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1 @@
1
+ export {};
@@ -8,7 +8,7 @@ var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/creat
8
8
  var _react = _interopRequireDefault(require("react"));
9
9
  var _react2 = require("@testing-library/react");
10
10
  var _axeHelper = require("../../test/accessibility/axe-helper.js");
11
- var _Dropdown = _interopRequireDefault(require("./Dropdown.tsx"));
11
+ var _Dropdown = _interopRequireDefault(require("./Dropdown"));
12
12
  var iconSVG = /*#__PURE__*/_react["default"].createElement("svg", {
13
13
  viewBox: "0 0 24 24",
14
14
  height: "24",
@@ -83,7 +83,8 @@ describe("Dropdown component accessibility tests", function () {
83
83
  iconPosition: "before",
84
84
  margin: "medium",
85
85
  size: "medium",
86
- optionsIconPosition: "before"
86
+ optionsIconPosition: "before",
87
+ onSelectOption: function onSelectOption() {}
87
88
  })), baseElement = _render.baseElement;
88
89
  _context.next = 3;
89
90
  return (0, _axeHelper.axe)(baseElement);
@@ -110,6 +111,7 @@ describe("Dropdown component accessibility tests", function () {
110
111
  margin: "medium",
111
112
  size: "medium",
112
113
  optionsIconPosition: "before",
114
+ onSelectOption: function onSelectOption() {},
113
115
  disabled: true
114
116
  })), baseElement = _render2.baseElement;
115
117
  _context2.next = 3;
@@ -137,6 +139,7 @@ describe("Dropdown component accessibility tests", function () {
137
139
  margin: "medium",
138
140
  size: "medium",
139
141
  optionsIconPosition: "after",
142
+ onSelectOption: function onSelectOption() {},
140
143
  caretHidden: true
141
144
  })), baseElement = _render3.baseElement;
142
145
  _context3.next = 3;
@@ -164,6 +167,7 @@ describe("Dropdown component accessibility tests", function () {
164
167
  margin: "medium",
165
168
  size: "medium",
166
169
  optionsIconPosition: "after",
170
+ onSelectOption: function onSelectOption() {},
167
171
  expandOnHover: true
168
172
  })), baseElement = _render4.baseElement;
169
173
  _context4.next = 3;
@@ -14,7 +14,6 @@ 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"));
@@ -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;
@@ -0,0 +1 @@
1
+ export {};