@dxc-technology/halstack-react 0.0.0-75be8bf → 0.0.0-75cb2b9

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 (349) hide show
  1. package/README.md +1 -2
  2. package/dist/index.d.mts +6515 -0
  3. package/dist/index.d.ts +6515 -0
  4. package/dist/index.js +12811 -0
  5. package/dist/index.mjs +12724 -0
  6. package/package.json +64 -61
  7. package/BackgroundColorContext.d.ts +0 -10
  8. package/BackgroundColorContext.js +0 -47
  9. package/HalstackContext.d.ts +0 -1339
  10. package/HalstackContext.js +0 -335
  11. package/accordion/Accordion.d.ts +0 -4
  12. package/accordion/Accordion.js +0 -222
  13. package/accordion/Accordion.stories.tsx +0 -297
  14. package/accordion/Accordion.test.js +0 -71
  15. package/accordion/types.d.ts +0 -57
  16. package/accordion/types.js +0 -5
  17. package/accordion-group/AccordionGroup.d.ts +0 -8
  18. package/accordion-group/AccordionGroup.js +0 -128
  19. package/accordion-group/AccordionGroup.stories.tsx +0 -252
  20. package/accordion-group/AccordionGroup.test.js +0 -116
  21. package/accordion-group/AccordionGroupAccordion.d.ts +0 -4
  22. package/accordion-group/AccordionGroupAccordion.js +0 -43
  23. package/accordion-group/types.d.ts +0 -67
  24. package/accordion-group/types.js +0 -5
  25. package/alert/Alert.d.ts +0 -4
  26. package/alert/Alert.js +0 -289
  27. package/alert/Alert.stories.tsx +0 -198
  28. package/alert/Alert.test.js +0 -92
  29. package/alert/types.d.ts +0 -49
  30. package/alert/types.js +0 -5
  31. package/badge/Badge.d.ts +0 -4
  32. package/badge/Badge.js +0 -61
  33. package/badge/types.d.ts +0 -5
  34. package/badge/types.js +0 -5
  35. package/bleed/Bleed.d.ts +0 -3
  36. package/bleed/Bleed.js +0 -51
  37. package/bleed/Bleed.stories.tsx +0 -342
  38. package/bleed/types.d.ts +0 -37
  39. package/bleed/types.js +0 -5
  40. package/box/Box.d.ts +0 -4
  41. package/box/Box.js +0 -97
  42. package/box/Box.stories.tsx +0 -119
  43. package/box/Box.test.js +0 -18
  44. package/box/types.d.ts +0 -32
  45. package/box/types.js +0 -5
  46. package/bulleted-list/BulletedList.d.ts +0 -7
  47. package/bulleted-list/BulletedList.js +0 -125
  48. package/bulleted-list/BulletedList.stories.tsx +0 -206
  49. package/bulleted-list/types.d.ts +0 -38
  50. package/bulleted-list/types.js +0 -5
  51. package/button/Button.d.ts +0 -4
  52. package/button/Button.js +0 -144
  53. package/button/Button.stories.tsx +0 -425
  54. package/button/Button.test.js +0 -46
  55. package/button/types.d.ts +0 -57
  56. package/button/types.js +0 -5
  57. package/card/Card.d.ts +0 -4
  58. package/card/Card.js +0 -143
  59. package/card/Card.stories.tsx +0 -171
  60. package/card/Card.test.js +0 -50
  61. package/card/types.d.ts +0 -62
  62. package/card/types.js +0 -5
  63. package/checkbox/Checkbox.d.ts +0 -4
  64. package/checkbox/Checkbox.js +0 -250
  65. package/checkbox/Checkbox.stories.tsx +0 -260
  66. package/checkbox/Checkbox.test.js +0 -155
  67. package/checkbox/types.d.ts +0 -68
  68. package/checkbox/types.js +0 -5
  69. package/chip/Chip.d.ts +0 -4
  70. package/chip/Chip.js +0 -140
  71. package/chip/Chip.stories.tsx +0 -214
  72. package/chip/Chip.test.js +0 -54
  73. package/chip/types.d.ts +0 -45
  74. package/chip/types.js +0 -5
  75. package/common/OpenSans.css +0 -69
  76. package/common/coreTokens.d.ts +0 -146
  77. package/common/coreTokens.js +0 -167
  78. package/common/fonts/OpenSans-Bold.ttf +0 -0
  79. package/common/fonts/OpenSans-BoldItalic.ttf +0 -0
  80. package/common/fonts/OpenSans-ExtraBold.ttf +0 -0
  81. package/common/fonts/OpenSans-ExtraBoldItalic.ttf +0 -0
  82. package/common/fonts/OpenSans-Italic.ttf +0 -0
  83. package/common/fonts/OpenSans-Light.ttf +0 -0
  84. package/common/fonts/OpenSans-LightItalic.ttf +0 -0
  85. package/common/fonts/OpenSans-Regular.ttf +0 -0
  86. package/common/fonts/OpenSans-SemiBold.ttf +0 -0
  87. package/common/fonts/OpenSans-SemiBoldItalic.ttf +0 -0
  88. package/common/utils.d.ts +0 -1
  89. package/common/utils.js +0 -22
  90. package/common/variables.d.ts +0 -1485
  91. package/common/variables.js +0 -1364
  92. package/date-input/Calendar.d.ts +0 -4
  93. package/date-input/Calendar.js +0 -258
  94. package/date-input/DateInput.d.ts +0 -4
  95. package/date-input/DateInput.js +0 -269
  96. package/date-input/DateInput.stories.tsx +0 -304
  97. package/date-input/DateInput.test.js +0 -835
  98. package/date-input/DatePicker.d.ts +0 -4
  99. package/date-input/DatePicker.js +0 -146
  100. package/date-input/Icons.d.ts +0 -6
  101. package/date-input/Icons.js +0 -75
  102. package/date-input/YearPicker.d.ts +0 -4
  103. package/date-input/YearPicker.js +0 -126
  104. package/date-input/types.d.ts +0 -158
  105. package/date-input/types.js +0 -5
  106. package/dialog/Dialog.d.ts +0 -4
  107. package/dialog/Dialog.js +0 -131
  108. package/dialog/Dialog.stories.tsx +0 -195
  109. package/dialog/Dialog.test.js +0 -369
  110. package/dialog/types.d.ts +0 -31
  111. package/dialog/types.js +0 -5
  112. package/dropdown/Dropdown.d.ts +0 -4
  113. package/dropdown/Dropdown.js +0 -388
  114. package/dropdown/Dropdown.stories.tsx +0 -438
  115. package/dropdown/Dropdown.test.js +0 -586
  116. package/dropdown/DropdownMenu.d.ts +0 -4
  117. package/dropdown/DropdownMenu.js +0 -74
  118. package/dropdown/DropdownMenuItem.d.ts +0 -4
  119. package/dropdown/DropdownMenuItem.js +0 -79
  120. package/dropdown/types.d.ts +0 -100
  121. package/dropdown/types.js +0 -5
  122. package/file-input/FileInput.d.ts +0 -4
  123. package/file-input/FileInput.js +0 -547
  124. package/file-input/FileInput.stories.tsx +0 -618
  125. package/file-input/FileInput.test.js +0 -457
  126. package/file-input/FileItem.d.ts +0 -4
  127. package/file-input/FileItem.js +0 -162
  128. package/file-input/types.d.ts +0 -129
  129. package/file-input/types.js +0 -5
  130. package/flex/Flex.d.ts +0 -4
  131. package/flex/Flex.js +0 -71
  132. package/flex/Flex.stories.tsx +0 -112
  133. package/flex/types.d.ts +0 -97
  134. package/flex/types.js +0 -5
  135. package/footer/Footer.d.ts +0 -4
  136. package/footer/Footer.js +0 -165
  137. package/footer/Footer.stories.tsx +0 -151
  138. package/footer/Footer.test.js +0 -99
  139. package/footer/Icons.d.ts +0 -2
  140. package/footer/Icons.js +0 -77
  141. package/footer/types.d.ts +0 -64
  142. package/footer/types.js +0 -5
  143. package/grid/Grid.d.ts +0 -7
  144. package/grid/Grid.js +0 -91
  145. package/grid/Grid.stories.tsx +0 -219
  146. package/grid/types.d.ts +0 -115
  147. package/grid/types.js +0 -5
  148. package/header/Header.d.ts +0 -8
  149. package/header/Header.js +0 -276
  150. package/header/Header.stories.tsx +0 -251
  151. package/header/Header.test.js +0 -79
  152. package/header/Icons.d.ts +0 -2
  153. package/header/Icons.js +0 -34
  154. package/header/types.d.ts +0 -34
  155. package/header/types.js +0 -5
  156. package/heading/Heading.d.ts +0 -4
  157. package/heading/Heading.js +0 -159
  158. package/heading/Heading.stories.tsx +0 -54
  159. package/heading/Heading.test.js +0 -186
  160. package/heading/types.d.ts +0 -33
  161. package/heading/types.js +0 -5
  162. package/image/Image.d.ts +0 -4
  163. package/image/Image.js +0 -81
  164. package/image/Image.stories.tsx +0 -127
  165. package/image/types.d.ts +0 -72
  166. package/image/types.js +0 -5
  167. package/inset/Inset.d.ts +0 -3
  168. package/inset/Inset.js +0 -51
  169. package/inset/Inset.stories.tsx +0 -230
  170. package/inset/types.d.ts +0 -37
  171. package/inset/types.js +0 -5
  172. package/layout/ApplicationLayout.d.ts +0 -20
  173. package/layout/ApplicationLayout.js +0 -174
  174. package/layout/ApplicationLayout.stories.tsx +0 -162
  175. package/layout/Icons.d.ts +0 -5
  176. package/layout/Icons.js +0 -66
  177. package/layout/SidenavContext.d.ts +0 -5
  178. package/layout/SidenavContext.js +0 -19
  179. package/layout/types.d.ts +0 -41
  180. package/layout/types.js +0 -5
  181. package/link/Link.d.ts +0 -4
  182. package/link/Link.js +0 -136
  183. package/link/Link.stories.tsx +0 -253
  184. package/link/Link.test.js +0 -81
  185. package/link/types.d.ts +0 -54
  186. package/link/types.js +0 -5
  187. package/main.d.ts +0 -46
  188. package/main.js +0 -385
  189. package/nav-tabs/NavTabs.d.ts +0 -8
  190. package/nav-tabs/NavTabs.js +0 -122
  191. package/nav-tabs/NavTabs.stories.tsx +0 -274
  192. package/nav-tabs/NavTabs.test.js +0 -82
  193. package/nav-tabs/Tab.d.ts +0 -4
  194. package/nav-tabs/Tab.js +0 -146
  195. package/nav-tabs/types.d.ts +0 -52
  196. package/nav-tabs/types.js +0 -5
  197. package/number-input/NumberInput.d.ts +0 -11
  198. package/number-input/NumberInput.js +0 -78
  199. package/number-input/NumberInput.stories.tsx +0 -115
  200. package/number-input/NumberInput.test.js +0 -725
  201. package/number-input/types.d.ts +0 -124
  202. package/number-input/types.js +0 -5
  203. package/paginator/Icons.d.ts +0 -5
  204. package/paginator/Icons.js +0 -54
  205. package/paginator/Paginator.d.ts +0 -4
  206. package/paginator/Paginator.js +0 -163
  207. package/paginator/Paginator.stories.tsx +0 -87
  208. package/paginator/Paginator.test.js +0 -318
  209. package/paginator/types.d.ts +0 -38
  210. package/paginator/types.js +0 -5
  211. package/paragraph/Paragraph.d.ts +0 -5
  212. package/paragraph/Paragraph.js +0 -38
  213. package/paragraph/Paragraph.stories.tsx +0 -44
  214. package/password-input/Icons.d.ts +0 -6
  215. package/password-input/Icons.js +0 -39
  216. package/password-input/PasswordInput.d.ts +0 -4
  217. package/password-input/PasswordInput.js +0 -119
  218. package/password-input/PasswordInput.stories.tsx +0 -132
  219. package/password-input/PasswordInput.test.js +0 -174
  220. package/password-input/types.d.ts +0 -110
  221. package/password-input/types.js +0 -5
  222. package/progress-bar/ProgressBar.d.ts +0 -4
  223. package/progress-bar/ProgressBar.js +0 -176
  224. package/progress-bar/ProgressBar.stories.jsx +0 -93
  225. package/progress-bar/ProgressBar.test.js +0 -110
  226. package/progress-bar/types.d.ts +0 -37
  227. package/progress-bar/types.js +0 -5
  228. package/quick-nav/QuickNav.d.ts +0 -4
  229. package/quick-nav/QuickNav.js +0 -117
  230. package/quick-nav/QuickNav.stories.tsx +0 -356
  231. package/quick-nav/types.d.ts +0 -21
  232. package/quick-nav/types.js +0 -5
  233. package/radio-group/Radio.d.ts +0 -4
  234. package/radio-group/Radio.js +0 -156
  235. package/radio-group/RadioGroup.d.ts +0 -4
  236. package/radio-group/RadioGroup.js +0 -281
  237. package/radio-group/RadioGroup.stories.tsx +0 -214
  238. package/radio-group/RadioGroup.test.js +0 -722
  239. package/radio-group/types.d.ts +0 -114
  240. package/radio-group/types.js +0 -5
  241. package/resultsetTable/Icons.d.ts +0 -7
  242. package/resultsetTable/Icons.js +0 -51
  243. package/resultsetTable/ResultsetTable.d.ts +0 -4
  244. package/resultsetTable/ResultsetTable.js +0 -195
  245. package/resultsetTable/ResultsetTable.stories.tsx +0 -300
  246. package/resultsetTable/ResultsetTable.test.js +0 -325
  247. package/resultsetTable/types.d.ts +0 -67
  248. package/resultsetTable/types.js +0 -5
  249. package/select/Icons.d.ts +0 -10
  250. package/select/Icons.js +0 -93
  251. package/select/Listbox.d.ts +0 -4
  252. package/select/Listbox.js +0 -169
  253. package/select/Option.d.ts +0 -4
  254. package/select/Option.js +0 -97
  255. package/select/Select.d.ts +0 -4
  256. package/select/Select.js +0 -666
  257. package/select/Select.stories.tsx +0 -971
  258. package/select/Select.test.js +0 -2228
  259. package/select/types.d.ts +0 -210
  260. package/select/types.js +0 -5
  261. package/sidenav/Icons.d.ts +0 -7
  262. package/sidenav/Icons.js +0 -51
  263. package/sidenav/Sidenav.d.ts +0 -10
  264. package/sidenav/Sidenav.js +0 -238
  265. package/sidenav/Sidenav.stories.tsx +0 -282
  266. package/sidenav/Sidenav.test.js +0 -44
  267. package/sidenav/types.d.ts +0 -76
  268. package/sidenav/types.js +0 -5
  269. package/slider/Slider.d.ts +0 -4
  270. package/slider/Slider.js +0 -342
  271. package/slider/Slider.stories.tsx +0 -240
  272. package/slider/Slider.test.js +0 -250
  273. package/slider/types.d.ts +0 -86
  274. package/slider/types.js +0 -5
  275. package/spinner/Spinner.d.ts +0 -4
  276. package/spinner/Spinner.js +0 -244
  277. package/spinner/Spinner.stories.jsx +0 -129
  278. package/spinner/Spinner.test.js +0 -64
  279. package/spinner/types.d.ts +0 -32
  280. package/spinner/types.js +0 -5
  281. package/switch/Switch.d.ts +0 -4
  282. package/switch/Switch.js +0 -262
  283. package/switch/Switch.stories.tsx +0 -171
  284. package/switch/Switch.test.js +0 -225
  285. package/switch/types.d.ts +0 -66
  286. package/switch/types.js +0 -5
  287. package/table/Table.d.ts +0 -4
  288. package/table/Table.js +0 -118
  289. package/table/Table.stories.jsx +0 -356
  290. package/table/Table.test.js +0 -26
  291. package/table/types.d.ts +0 -21
  292. package/table/types.js +0 -5
  293. package/tabs/Tab.d.ts +0 -4
  294. package/tabs/Tab.js +0 -132
  295. package/tabs/Tabs.d.ts +0 -4
  296. package/tabs/Tabs.js +0 -461
  297. package/tabs/Tabs.stories.tsx +0 -226
  298. package/tabs/Tabs.test.js +0 -350
  299. package/tabs/types.d.ts +0 -92
  300. package/tabs/types.js +0 -5
  301. package/tag/Tag.d.ts +0 -4
  302. package/tag/Tag.js +0 -181
  303. package/tag/Tag.stories.tsx +0 -155
  304. package/tag/Tag.test.js +0 -60
  305. package/tag/types.d.ts +0 -69
  306. package/tag/types.js +0 -5
  307. package/text-input/Icons.d.ts +0 -8
  308. package/text-input/Icons.js +0 -60
  309. package/text-input/Suggestion.d.ts +0 -4
  310. package/text-input/Suggestion.js +0 -84
  311. package/text-input/Suggestions.d.ts +0 -4
  312. package/text-input/Suggestions.js +0 -134
  313. package/text-input/TextInput.d.ts +0 -4
  314. package/text-input/TextInput.js +0 -657
  315. package/text-input/TextInput.stories.tsx +0 -569
  316. package/text-input/TextInput.test.js +0 -1723
  317. package/text-input/types.d.ts +0 -197
  318. package/text-input/types.js +0 -5
  319. package/textarea/Textarea.d.ts +0 -4
  320. package/textarea/Textarea.js +0 -276
  321. package/textarea/Textarea.stories.jsx +0 -216
  322. package/textarea/Textarea.test.js +0 -435
  323. package/textarea/types.d.ts +0 -137
  324. package/textarea/types.js +0 -5
  325. package/toggle-group/ToggleGroup.d.ts +0 -4
  326. package/toggle-group/ToggleGroup.js +0 -241
  327. package/toggle-group/ToggleGroup.stories.tsx +0 -218
  328. package/toggle-group/ToggleGroup.test.js +0 -170
  329. package/toggle-group/types.d.ts +0 -114
  330. package/toggle-group/types.js +0 -5
  331. package/typography/Typography.d.ts +0 -4
  332. package/typography/Typography.js +0 -32
  333. package/typography/Typography.stories.tsx +0 -198
  334. package/typography/types.d.ts +0 -18
  335. package/typography/types.js +0 -5
  336. package/useTheme.d.ts +0 -1238
  337. package/useTheme.js +0 -22
  338. package/useTranslatedLabels.d.ts +0 -85
  339. package/useTranslatedLabels.js +0 -20
  340. package/utils/BaseTypography.d.ts +0 -21
  341. package/utils/BaseTypography.js +0 -108
  342. package/utils/FocusLock.d.ts +0 -13
  343. package/utils/FocusLock.js +0 -138
  344. package/wizard/Wizard.d.ts +0 -4
  345. package/wizard/Wizard.js +0 -285
  346. package/wizard/Wizard.stories.tsx +0 -253
  347. package/wizard/Wizard.test.js +0 -141
  348. package/wizard/types.d.ts +0 -64
  349. package/wizard/types.js +0 -5
@@ -1,722 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
- var _react = _interopRequireDefault(require("react"));
6
-
7
- var _react2 = require("@testing-library/react");
8
-
9
- var _userEvent = _interopRequireDefault(require("@testing-library/user-event"));
10
-
11
- var _RadioGroup = _interopRequireDefault(require("./RadioGroup.tsx"));
12
-
13
- var options = [{
14
- label: "Option 01",
15
- value: "1"
16
- }, {
17
- label: "Option 02",
18
- value: "2"
19
- }, {
20
- label: "Option 03",
21
- value: "3"
22
- }, {
23
- label: "Option 04",
24
- value: "4"
25
- }, {
26
- label: "Option 05",
27
- value: "5"
28
- }, {
29
- label: "Option 06",
30
- value: "6"
31
- }, {
32
- label: "Option 07",
33
- value: "7"
34
- }, {
35
- label: "Option 08",
36
- value: "8"
37
- }, {
38
- label: "Option 09",
39
- value: "9"
40
- }];
41
- var singleDisabledOptions = [{
42
- label: "Option 01",
43
- value: "1"
44
- }, {
45
- label: "Option 02",
46
- value: "2"
47
- }, {
48
- label: "Option 03",
49
- value: "3",
50
- disabled: true
51
- }];
52
- describe("Radio Group component tests", function () {
53
- test("Initial render has correct aria attributes and tabIndex", function () {
54
- var _render = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_RadioGroup["default"], {
55
- label: "test-radioGroup-label",
56
- options: options,
57
- error: ""
58
- })),
59
- getByRole = _render.getByRole,
60
- getAllByRole = _render.getAllByRole,
61
- getByText = _render.getByText,
62
- container = _render.container;
63
-
64
- var radioGroup = getByRole("radiogroup");
65
- var radios = getAllByRole("radio");
66
- var errorId = "error-".concat(getByText("test-radioGroup-label").id.replace("label-", ""));
67
- var error = container.querySelector("#".concat(errorId));
68
- expect(radioGroup.getAttribute("aria-disabled")).toBe("false");
69
- expect(radioGroup.getAttribute("aria-labelledby")).toBe(getByText("test-radioGroup-label").id);
70
- expect(radioGroup.getAttribute("aria-invalid")).toBe("false");
71
- expect(radioGroup.getAttribute("aria-required")).toBe("true");
72
- expect(radioGroup.getAttribute("aria-orientation")).toBe("vertical");
73
- expect(error.getAttribute("aria-live")).toBe("off");
74
- radios.forEach(function (radio, index) {
75
- // if no option was previously selected, first option is the focusable one
76
- if (index === 0) expect(radio.tabIndex).toBe(0);else expect(radio.tabIndex).toBe(-1);
77
- expect(radio.getAttribute("aria-checked")).toBe("false");
78
- expect(radio.getAttribute("aria-disabled")).toBe("false");
79
- expect(radio.getAttribute("aria-labelledby")).toBe(getByText("Option 0".concat(index + 1)).id);
80
- });
81
- });
82
- test("aria-orientation attribute changes depending on stacking prop value", function () {
83
- var _render2 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_RadioGroup["default"], {
84
- label: "test-radioGroup-label",
85
- options: options,
86
- stacking: "row"
87
- })),
88
- getByRole = _render2.getByRole;
89
-
90
- var radioGroup = getByRole("radiogroup");
91
- expect(radioGroup.getAttribute("aria-orientation")).toBe("horizontal");
92
- });
93
- test("Sends its value when submitted", function () {
94
- var handlerOnSubmit = jest.fn(function (e) {
95
- e.preventDefault();
96
- var formData = new FormData(e.target);
97
- var formProps = Object.fromEntries(formData);
98
- expect(formProps).toStrictEqual({
99
- radiogroup: "5"
100
- });
101
- });
102
-
103
- var _render3 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement("form", {
104
- onSubmit: handlerOnSubmit
105
- }, /*#__PURE__*/_react["default"].createElement(_RadioGroup["default"], {
106
- name: "radiogroup",
107
- label: "test-radio-group-label",
108
- options: options
109
- }), /*#__PURE__*/_react["default"].createElement("button", {
110
- type: "submit"
111
- }, "Submit"))),
112
- getByText = _render3.getByText,
113
- getByRole = _render3.getByRole,
114
- getAllByRole = _render3.getAllByRole;
115
-
116
- var radioGroup = getByRole("radiogroup");
117
- var submit = getByText("Submit");
118
-
119
- _userEvent["default"].click(radioGroup);
120
-
121
- _userEvent["default"].click(getAllByRole("radio")[4]);
122
-
123
- _userEvent["default"].click(submit);
124
- });
125
- test("Disabled state renders with correct aria attribute, correct tabIndex values and it is not focusable by keyboard", function () {
126
- var _render4 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_RadioGroup["default"], {
127
- label: "test-radioGroup-label",
128
- options: options,
129
- disabled: true
130
- })),
131
- getByRole = _render4.getByRole,
132
- getAllByRole = _render4.getAllByRole;
133
-
134
- var radioGroup = getByRole("radiogroup");
135
- var radios = getAllByRole("radio");
136
- expect(radioGroup.getAttribute("aria-disabled")).toBe("true");
137
- radios.forEach(function (radio) {
138
- expect(radio.tabIndex).toBe(-1);
139
- });
140
-
141
- _react2.fireEvent.keyDown(radioGroup, {
142
- key: " ",
143
- code: "Space",
144
- keyCode: 13,
145
- charCode: 13
146
- });
147
-
148
- _react2.fireEvent.keyDown(radioGroup, {
149
- key: "ArrowLeft",
150
- code: "ArrowLeft",
151
- keyCode: 37,
152
- charCode: 37
153
- });
154
-
155
- _react2.fireEvent.keyDown(radioGroup, {
156
- key: "ArrowDown",
157
- code: "ArrowDown",
158
- keyCode: 40,
159
- charCode: 40
160
- });
161
-
162
- radios.forEach(function (radio) {
163
- expect(radio.tabIndex).toBe(-1);
164
- });
165
- });
166
- test("Disabled option renders with correct aria attribute, correct tabIndex value and it is not focusable by keyboard (focus 'jumps' the disabled option)", function () {
167
- var _render5 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_RadioGroup["default"], {
168
- name: "test",
169
- label: "test-radioGroup-label",
170
- options: singleDisabledOptions
171
- })),
172
- getByRole = _render5.getByRole,
173
- getAllByRole = _render5.getAllByRole;
174
-
175
- var radioGroup = getByRole("radiogroup");
176
- var radios = getAllByRole("radio");
177
- expect(radios[2].getAttribute("aria-disabled")).toBe("true");
178
- expect(radios[0].tabIndex).toBe(0);
179
- expect(radios[1].tabIndex).toBe(-1);
180
- expect(radios[2].tabIndex).toBe(-1);
181
-
182
- _react2.fireEvent.keyDown(radioGroup, {
183
- key: "ArrowDown",
184
- code: "ArrowDown",
185
- keyCode: 40,
186
- charCode: 40
187
- });
188
-
189
- _react2.fireEvent.keyDown(radioGroup, {
190
- key: "ArrowDown",
191
- code: "ArrowDown",
192
- keyCode: 40,
193
- charCode: 40
194
- });
195
-
196
- expect(radios[0].tabIndex).toBe(0);
197
- expect(radios[1].tabIndex).toBe(-1);
198
- expect(radios[2].tabIndex).toBe(-1);
199
- });
200
- test("Disabled radio group doesn't send its value when submitted", function () {
201
- var handlerOnSubmit = jest.fn(function (e) {
202
- e.preventDefault();
203
- var formData = new FormData(e.target);
204
- var formProps = Object.fromEntries(formData);
205
- expect(formProps).toStrictEqual({});
206
- });
207
-
208
- var _render6 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement("form", {
209
- onSubmit: handlerOnSubmit
210
- }, /*#__PURE__*/_react["default"].createElement(_RadioGroup["default"], {
211
- name: "radiogroup",
212
- defaultValue: "1",
213
- disabled: true,
214
- label: "test-radio-group-label",
215
- options: options
216
- }), /*#__PURE__*/_react["default"].createElement("button", {
217
- type: "submit"
218
- }, "Submit"))),
219
- getByText = _render6.getByText;
220
-
221
- var submit = getByText("Submit");
222
-
223
- _userEvent["default"].click(submit);
224
- });
225
- test("Error state renders with correct aria attributes", function () {
226
- var _render7 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_RadioGroup["default"], {
227
- label: "test-radioGroup-label",
228
- options: options,
229
- error: "Error message"
230
- })),
231
- getByRole = _render7.getByRole,
232
- getByText = _render7.getByText;
233
-
234
- var radioGroup = getByRole("radiogroup");
235
- var errorMessage = getByText("Error message");
236
- expect(radioGroup.getAttribute("aria-errormessage")).toBe(errorMessage.id);
237
- expect(radioGroup.getAttribute("aria-invalid")).toBe("true");
238
- expect(errorMessage.getAttribute("aria-live")).toBe("assertive");
239
- });
240
- test("Radio group with required constraint and 'undefined' as value, sends an error", function () {
241
- var onChange = jest.fn();
242
- var onBlur = jest.fn();
243
-
244
- var _render8 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_RadioGroup["default"], {
245
- label: "test-radioGroup-label",
246
- options: options,
247
- onChange: onChange,
248
- onBlur: onBlur
249
- })),
250
- getByRole = _render8.getByRole,
251
- getAllByRole = _render8.getAllByRole;
252
-
253
- var radioGroup = getByRole("radiogroup");
254
- expect(radioGroup.getAttribute("aria-required")).toBe("true");
255
-
256
- _react2.fireEvent.blur(radioGroup);
257
-
258
- expect(onBlur).toHaveBeenCalledWith({
259
- error: "This field is required. Please, choose an option."
260
- });
261
-
262
- _userEvent["default"].click(radioGroup);
263
-
264
- _userEvent["default"].click(getAllByRole("radio")[0]);
265
-
266
- expect(onChange).toHaveBeenCalledWith("1");
267
-
268
- _react2.fireEvent.blur(radioGroup);
269
-
270
- expect(onBlur).toHaveBeenCalledWith({
271
- value: "1"
272
- });
273
- });
274
- test("Radio group with required constraint and empty string as value, sends an error", function () {
275
- var onChange = jest.fn();
276
- var onBlur = jest.fn();
277
-
278
- var _render9 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_RadioGroup["default"], {
279
- label: "test-radioGroup-label",
280
- value: "",
281
- options: options,
282
- onChange: onChange,
283
- onBlur: onBlur
284
- })),
285
- getByRole = _render9.getByRole,
286
- getAllByRole = _render9.getAllByRole;
287
-
288
- var radioGroup = getByRole("radiogroup");
289
- expect(radioGroup.getAttribute("aria-required")).toBe("true");
290
-
291
- _react2.fireEvent.blur(radioGroup);
292
-
293
- expect(onBlur).toHaveBeenCalledWith({
294
- value: "",
295
- error: "This field is required. Please, choose an option."
296
- });
297
-
298
- _userEvent["default"].click(getAllByRole("radio")[0]);
299
-
300
- expect(onChange).toHaveBeenCalledWith("1");
301
- });
302
- test("The 'defaultValue' gives the radio group an initial value when it is uncontrolled", function () {
303
- var onChange = jest.fn();
304
-
305
- var _render10 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_RadioGroup["default"], {
306
- defaultValue: "2",
307
- name: "test",
308
- label: "test-radio-group-label",
309
- helperText: "test-radio-group-helper-text",
310
- options: options,
311
- onChange: onChange
312
- })),
313
- getAllByRole = _render10.getAllByRole,
314
- container = _render10.container;
315
-
316
- var radio = getAllByRole("radio")[1];
317
- var submitInput = container.querySelector("input[name=\"test\"]");
318
- expect(radio.tabIndex).toBe(0);
319
- expect(radio.getAttribute("aria-checked")).toBe("true");
320
- expect(submitInput.value).toBe("2");
321
- });
322
- test("Optional radio group conditions: onBlur event doesn't send an error when no radio was checked, has correct aria attributes, custom label and its value is the empty string", function () {
323
- var onChange = jest.fn();
324
- var onBlur = jest.fn();
325
-
326
- var _render11 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_RadioGroup["default"], {
327
- name: "test",
328
- label: "test-radio-group-label",
329
- helperText: "test-radio-group-helper-text",
330
- options: options,
331
- onChange: onChange,
332
- onBlur: onBlur,
333
- optional: true,
334
- optionalItemLabel: "No selection"
335
- })),
336
- getByRole = _render11.getByRole,
337
- getByText = _render11.getByText,
338
- container = _render11.container;
339
-
340
- var radioGroup = getByRole("radiogroup");
341
- expect(radioGroup.getAttribute("aria-required")).toBe("false");
342
-
343
- _react2.fireEvent.blur(radioGroup);
344
-
345
- expect(onBlur).toHaveBeenCalledWith({});
346
- expect(radioGroup.getAttribute("aria-invalid")).toBe("false");
347
- var optionalLabel = getByText("No selection");
348
- var submitInput = container.querySelector("input[name=\"test\"]");
349
-
350
- _userEvent["default"].click(optionalLabel);
351
-
352
- expect(onChange).toHaveBeenCalledWith("");
353
- expect(submitInput.value).toBe("");
354
- });
355
- test("Controlled radio group", function () {
356
- var onChange = jest.fn();
357
- var onBlur = jest.fn();
358
-
359
- var _render12 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_RadioGroup["default"], {
360
- name: "test",
361
- value: "2",
362
- label: "test-radio-group-label",
363
- helperText: "test-radio-group-helper-text",
364
- options: options,
365
- onChange: onChange,
366
- onBlur: onBlur
367
- })),
368
- getByRole = _render12.getByRole,
369
- getAllByRole = _render12.getAllByRole,
370
- container = _render12.container;
371
-
372
- var radioGroup = getByRole("radiogroup");
373
- var radios = getAllByRole("radio");
374
- var submitInput = container.querySelector("input[name=\"test\"]");
375
- expect(submitInput.value).toBe("2");
376
- expect(radios[1].tabIndex).toBe(0);
377
- expect(radios[1].getAttribute("aria-checked")).toBe("true");
378
-
379
- _userEvent["default"].click(radios[6]);
380
-
381
- expect(onChange).toHaveBeenCalledWith("7");
382
-
383
- _react2.fireEvent.blur(radioGroup);
384
-
385
- expect(onBlur).toHaveBeenCalledWith({
386
- value: "2"
387
- });
388
- });
389
- test("Select an option by clicking on its label", function () {
390
- var onChange = jest.fn();
391
-
392
- var _render13 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_RadioGroup["default"], {
393
- name: "test",
394
- label: "test-radio-group-label",
395
- helperText: "test-radio-group-helper-text",
396
- options: options,
397
- onChange: onChange
398
- })),
399
- getByText = _render13.getByText,
400
- getAllByRole = _render13.getAllByRole,
401
- container = _render13.container;
402
-
403
- var radioLabel = getByText("Option 09");
404
- var checkedRadio = getAllByRole("radio")[8];
405
- var submitInput = container.querySelector("input[name=\"test\"]");
406
- expect(checkedRadio.tabIndex).toBe(-1);
407
-
408
- _userEvent["default"].click(radioLabel);
409
-
410
- expect(onChange).toHaveBeenCalledWith("9");
411
- expect(checkedRadio.getAttribute("aria-checked")).toBe("true");
412
- expect(checkedRadio.tabIndex).toBe(0);
413
- expect(document.activeElement).toEqual(checkedRadio);
414
- expect(submitInput.value).toBe("9");
415
- });
416
- test("Select an option by clicking on its radio input", function () {
417
- var onChange = jest.fn();
418
-
419
- var _render14 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_RadioGroup["default"], {
420
- name: "test",
421
- label: "test-radio-group-label",
422
- helperText: "test-radio-group-helper-text",
423
- options: options,
424
- onChange: onChange
425
- })),
426
- getAllByRole = _render14.getAllByRole,
427
- container = _render14.container;
428
-
429
- var checkedRadio = getAllByRole("radio")[6];
430
- var submitInput = container.querySelector("input[name=\"test\"]");
431
- expect(checkedRadio.tabIndex).toBe(-1);
432
-
433
- _userEvent["default"].click(checkedRadio);
434
-
435
- expect(onChange).toHaveBeenCalledWith("7");
436
- expect(checkedRadio.getAttribute("aria-checked")).toBe("true");
437
- expect(checkedRadio.tabIndex).toBe(0);
438
- expect(document.activeElement).toEqual(checkedRadio);
439
- expect(submitInput.value).toBe("7");
440
- });
441
- test("Select an option that is already checked does not call onChange event but gives the focus", function () {
442
- var onChange = jest.fn();
443
-
444
- var _render15 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_RadioGroup["default"], {
445
- defaultValue: "2",
446
- name: "test",
447
- label: "test-radio-group-label",
448
- helperText: "test-radio-group-helper-text",
449
- options: options,
450
- onChange: onChange
451
- })),
452
- getAllByRole = _render15.getAllByRole;
453
-
454
- var checkedRadio = getAllByRole("radio")[1];
455
- expect(checkedRadio.tabIndex).toBe(0);
456
- expect(checkedRadio.getAttribute("aria-checked")).toBe("true");
457
-
458
- _userEvent["default"].click(checkedRadio);
459
-
460
- expect(onChange).not.toHaveBeenCalled();
461
- expect(document.activeElement).toEqual(checkedRadio);
462
- });
463
- test("The 'space' key checks the current focused option if anyone is checked", function () {
464
- var onChange = jest.fn();
465
-
466
- var _render16 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_RadioGroup["default"], {
467
- name: "test",
468
- label: "test-radio-group-label",
469
- helperText: "test-radio-group-helper-text",
470
- options: options,
471
- onChange: onChange
472
- })),
473
- getByRole = _render16.getByRole,
474
- getAllByRole = _render16.getAllByRole,
475
- container = _render16.container;
476
-
477
- var radioGroup = getByRole("radiogroup");
478
- var checkedRadio = getAllByRole("radio")[0];
479
- var submitInput = container.querySelector("input[name=\"test\"]");
480
-
481
- _react2.fireEvent.keyDown(radioGroup, {
482
- key: " ",
483
- code: "Space",
484
- keyCode: 32,
485
- charCode: 32
486
- });
487
-
488
- expect(onChange).toHaveBeenCalledWith("1");
489
- expect(checkedRadio.getAttribute("aria-checked")).toBe("true");
490
- expect(checkedRadio.tabIndex).toBe(0);
491
- expect(submitInput.value).toBe("1");
492
- });
493
- test("When the radio group gains the focus by keyboard ('tab' key), it goes to the first option (if no one was previously selected), without selecting it", function () {
494
- var onChange = jest.fn();
495
- var onBlur = jest.fn();
496
-
497
- var _render17 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_RadioGroup["default"], {
498
- name: "test",
499
- label: "test-radio-group-label",
500
- helperText: "test-radio-group-helper-text",
501
- options: options,
502
- onChange: onChange,
503
- onBlur: onBlur
504
- })),
505
- getByRole = _render17.getByRole,
506
- getAllByRole = _render17.getAllByRole,
507
- container = _render17.container;
508
-
509
- var radioGroup = getByRole("radiogroup");
510
- var radios = getAllByRole("radio");
511
- var submitInput = container.querySelector("input[name=\"test\"]");
512
- var checkedRadio = getAllByRole("radio")[0];
513
-
514
- _userEvent["default"].tab();
515
-
516
- expect(onChange).not.toHaveBeenCalled();
517
- expect(submitInput.value).toBe("");
518
- expect(checkedRadio.tabIndex).toBe(0);
519
- expect(checkedRadio.getAttribute("aria-checked")).toBe("false");
520
- expect(document.activeElement).toEqual(checkedRadio);
521
-
522
- _react2.fireEvent.keyDown(radioGroup, {
523
- key: "ArrowRight",
524
- code: "ArrowRight",
525
- keyCode: 39,
526
- charCode: 39
527
- });
528
-
529
- expect(onBlur).not.toHaveBeenCalled();
530
- expect(onChange).toHaveBeenCalledTimes(1);
531
- expect(radios[1].getAttribute("aria-checked")).toBe("true");
532
- expect(document.activeElement).toEqual(radios[1]);
533
- expect(radios[1].tabIndex).toBe(0);
534
- expect(submitInput.value).toBe("2");
535
- });
536
- test("The 'arrowDown' and 'arrowRight' keys move the selection to the next radio. When the last radio is reached, moves the selection to the first one", function () {
537
- var onChange = jest.fn();
538
- var onBlur = jest.fn();
539
-
540
- var _render18 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_RadioGroup["default"], {
541
- defaultValue: "8",
542
- name: "test",
543
- label: "test-radio-group-label",
544
- helperText: "test-radio-group-helper-text",
545
- options: options,
546
- onChange: onChange,
547
- onBlur: onBlur
548
- })),
549
- getByRole = _render18.getByRole,
550
- getAllByRole = _render18.getAllByRole,
551
- container = _render18.container;
552
-
553
- var radioGroup = getByRole("radiogroup");
554
- var radios = getAllByRole("radio");
555
- var submitInput = container.querySelector("input[name=\"test\"]");
556
-
557
- _react2.fireEvent.keyDown(radioGroup, {
558
- key: "ArrowDown",
559
- code: "ArrowDown",
560
- keyCode: 40,
561
- charCode: 40
562
- });
563
-
564
- expect(onBlur).not.toHaveBeenCalled();
565
- expect(onChange).toHaveBeenCalledTimes(1);
566
- expect(radios[8].getAttribute("aria-checked")).toBe("true");
567
- expect(document.activeElement).toEqual(radios[8]);
568
- expect(radios[8].tabIndex).toBe(0);
569
- expect(submitInput.value).toBe("9");
570
-
571
- _react2.fireEvent.keyDown(radioGroup, {
572
- key: "ArrowRight",
573
- code: "ArrowRight",
574
- keyCode: 39,
575
- charCode: 39
576
- });
577
-
578
- expect(onBlur).not.toHaveBeenCalled();
579
- expect(onChange).toHaveBeenCalledTimes(2);
580
- expect(radios[0].getAttribute("aria-checked")).toBe("true");
581
- expect(document.activeElement).toEqual(radios[0]);
582
- expect(radios[0].tabIndex).toBe(0);
583
- expect(submitInput.value).toBe("1");
584
- });
585
- test("The 'arrowUp' and 'arrowLeft' keys move the selection to the previous radio. When the first radio is reached, moves the selection to the last one", function () {
586
- var onChange = jest.fn();
587
- var onBlur = jest.fn();
588
-
589
- var _render19 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_RadioGroup["default"], {
590
- defaultValue: "2",
591
- name: "test",
592
- label: "test-radio-group-label",
593
- helperText: "test-radio-group-helper-text",
594
- options: options,
595
- onChange: onChange,
596
- onBlur: onBlur
597
- })),
598
- getByRole = _render19.getByRole,
599
- getAllByRole = _render19.getAllByRole,
600
- container = _render19.container;
601
-
602
- var radioGroup = getByRole("radiogroup");
603
- var radios = getAllByRole("radio");
604
- var submitInput = container.querySelector("input[name=\"test\"]");
605
-
606
- _react2.fireEvent.keyDown(radioGroup, {
607
- key: "ArrowUp",
608
- code: "ArrowUp",
609
- keyCode: 38,
610
- charCode: 38
611
- });
612
-
613
- expect(onBlur).not.toHaveBeenCalled();
614
- expect(onChange).toHaveBeenCalledTimes(1);
615
- expect(radios[0].getAttribute("aria-checked")).toBe("true");
616
- expect(document.activeElement).toEqual(radios[0]);
617
- expect(radios[0].tabIndex).toBe(0);
618
- expect(submitInput.value).toBe("1");
619
-
620
- _react2.fireEvent.keyDown(radioGroup, {
621
- key: "ArrowLeft",
622
- code: "ArrowLeft",
623
- keyCode: 37,
624
- charCode: 37
625
- });
626
-
627
- expect(onBlur).not.toHaveBeenCalled();
628
- expect(onChange).toHaveBeenCalledTimes(2);
629
- expect(radios[8].getAttribute("aria-checked")).toBe("true");
630
- expect(document.activeElement).toEqual(radios[8]);
631
- expect(radios[8].tabIndex).toBe(0);
632
- expect(submitInput.value).toBe("9");
633
- });
634
- test("Keyboard focus movement continues from the last radio input clicked", function () {
635
- var onChange = jest.fn();
636
-
637
- var _render20 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_RadioGroup["default"], {
638
- name: "test",
639
- label: "test-radio-group-label",
640
- helperText: "test-radio-group-helper-text",
641
- options: options,
642
- onChange: onChange
643
- })),
644
- getByRole = _render20.getByRole,
645
- getAllByRole = _render20.getAllByRole,
646
- container = _render20.container;
647
-
648
- var radioGroup = getByRole("radiogroup");
649
- var radios = getAllByRole("radio");
650
- var submitInput = container.querySelector("input[name=\"test\"]");
651
-
652
- _userEvent["default"].click(radios[3]);
653
-
654
- _react2.fireEvent.keyDown(radioGroup, {
655
- key: "ArrowDown",
656
- code: "ArrowDown",
657
- keyCode: 40,
658
- charCode: 40
659
- });
660
-
661
- expect(onChange).toHaveBeenCalledWith("5");
662
- expect(radios[4].getAttribute("aria-checked")).toBe("true");
663
- expect(document.activeElement).toEqual(radios[4]);
664
- expect(radios[4].tabIndex).toBe(0);
665
- expect(submitInput.value).toBe("5");
666
-
667
- _userEvent["default"].click(radios[8]);
668
-
669
- _react2.fireEvent.keyDown(radioGroup, {
670
- key: "ArrowLeft",
671
- code: "ArrowLeft",
672
- keyCode: 37,
673
- charCode: 37
674
- });
675
-
676
- expect(onChange).toHaveBeenCalledWith("8");
677
- expect(radios[7].getAttribute("aria-checked")).toBe("true");
678
- expect(document.activeElement).toEqual(radios[7]);
679
- expect(radios[7].tabIndex).toBe(0);
680
- expect(submitInput.value).toBe("8");
681
- });
682
- test("Readonly radio group lets the user move the focus, but neither click nor keyboard press changes the value", function () {
683
- var onChange = jest.fn();
684
-
685
- var _render21 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_RadioGroup["default"], {
686
- name: "test",
687
- label: "test-radio-group-label",
688
- helperText: "test-radio-group-helper-text",
689
- options: options,
690
- onChange: onChange,
691
- readonly: true
692
- })),
693
- getByRole = _render21.getByRole,
694
- getAllByRole = _render21.getAllByRole,
695
- container = _render21.container;
696
-
697
- var radioGroup = getByRole("radiogroup");
698
- var radios = getAllByRole("radio");
699
- var submitInput = container.querySelector("input[name=\"test\"]");
700
-
701
- _userEvent["default"].click(radios[5]);
702
-
703
- expect(onChange).not.toHaveBeenCalled();
704
- expect(radios[5].getAttribute("aria-checked")).toBe("false");
705
- expect(document.activeElement).toEqual(radios[5]);
706
- expect(radios[5].tabIndex).toBe(0);
707
- expect(submitInput.value).toBe("");
708
-
709
- _react2.fireEvent.keyDown(radioGroup, {
710
- key: "ArrowUp",
711
- code: "ArrowUp",
712
- keyCode: 38,
713
- charCode: 38
714
- });
715
-
716
- expect(onChange).not.toHaveBeenCalled();
717
- expect(radios[4].getAttribute("aria-checked")).toBe("false");
718
- expect(document.activeElement).toEqual(radios[4]);
719
- expect(radios[4].tabIndex).toBe(0);
720
- expect(submitInput.value).toBe("");
721
- });
722
- });