@dxc-technology/halstack-react 0.0.0-74ba970 → 0.0.0-74dd241

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