@dxc-technology/halstack-react 0.0.0-e345e78 → 0.0.0-e360842

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