@dxc-technology/halstack-react 0.0.0-bfdc357 → 0.0.0-c023f9a

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 (535) hide show
  1. package/BackgroundColorContext.d.ts +1 -0
  2. package/BackgroundColorContext.js +6 -26
  3. package/HalstackContext.d.ts +1246 -0
  4. package/HalstackContext.js +310 -0
  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 +103 -193
  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 +12 -23
  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 +3 -3
  17. package/accordion-group/AccordionGroup.js +39 -108
  18. package/accordion-group/AccordionGroup.stories.tsx +252 -0
  19. package/accordion-group/AccordionGroup.test.d.ts +1 -0
  20. package/accordion-group/AccordionGroup.test.js +94 -0
  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 +18 -23
  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 +41 -128
  37. package/alert/Alert.stories.tsx +28 -0
  38. package/alert/Alert.test.d.ts +1 -0
  39. package/alert/Alert.test.js +75 -0
  40. package/alert/types.d.ts +6 -6
  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 +4 -0
  44. package/badge/Badge.js +142 -40
  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 +54 -0
  49. package/badge/types.js +5 -0
  50. package/bleed/Bleed.d.ts +3 -0
  51. package/bleed/Bleed.js +43 -0
  52. package/bleed/Bleed.stories.tsx +342 -0
  53. package/bleed/types.d.ts +37 -0
  54. package/bleed/types.js +5 -0
  55. package/box/Box.accessibility.test.d.ts +1 -0
  56. package/box/Box.accessibility.test.js +33 -0
  57. package/box/Box.d.ts +1 -1
  58. package/box/Box.js +31 -82
  59. package/box/Box.stories.tsx +38 -51
  60. package/box/Box.test.d.ts +1 -0
  61. package/box/Box.test.js +13 -0
  62. package/box/types.d.ts +3 -14
  63. package/breadcrumbs/Breadcrumbs.accessibility.test.d.ts +1 -0
  64. package/breadcrumbs/Breadcrumbs.accessibility.test.js +96 -0
  65. package/breadcrumbs/Breadcrumbs.d.ts +4 -0
  66. package/breadcrumbs/Breadcrumbs.js +79 -0
  67. package/breadcrumbs/Breadcrumbs.stories.tsx +194 -0
  68. package/breadcrumbs/Breadcrumbs.test.d.ts +1 -0
  69. package/breadcrumbs/Breadcrumbs.test.js +169 -0
  70. package/breadcrumbs/Item.d.ts +4 -0
  71. package/breadcrumbs/Item.js +52 -0
  72. package/breadcrumbs/dropdownTheme.d.ts +53 -0
  73. package/breadcrumbs/dropdownTheme.js +62 -0
  74. package/breadcrumbs/types.d.ts +16 -0
  75. package/breadcrumbs/types.js +5 -0
  76. package/bulleted-list/BulletedList.accessibility.test.d.ts +1 -0
  77. package/bulleted-list/BulletedList.accessibility.test.js +119 -0
  78. package/bulleted-list/BulletedList.d.ts +7 -0
  79. package/bulleted-list/BulletedList.js +92 -0
  80. package/bulleted-list/BulletedList.stories.tsx +115 -0
  81. package/bulleted-list/types.d.ts +38 -0
  82. package/bulleted-list/types.js +5 -0
  83. package/button/Button.accessibility.test.d.ts +1 -0
  84. package/button/Button.accessibility.test.js +127 -0
  85. package/button/Button.d.ts +1 -1
  86. package/button/Button.js +65 -121
  87. package/button/Button.stories.tsx +155 -106
  88. package/button/Button.test.d.ts +1 -0
  89. package/button/Button.test.js +38 -0
  90. package/button/types.d.ts +14 -14
  91. package/card/Card.accessibility.test.d.ts +1 -0
  92. package/card/Card.accessibility.test.js +36 -0
  93. package/card/Card.d.ts +1 -1
  94. package/card/Card.js +60 -103
  95. package/card/Card.stories.tsx +171 -0
  96. package/card/Card.test.d.ts +1 -0
  97. package/card/Card.test.js +39 -0
  98. package/card/types.d.ts +8 -15
  99. package/checkbox/Checkbox.accessibility.test.d.ts +1 -0
  100. package/checkbox/Checkbox.accessibility.test.js +87 -0
  101. package/checkbox/Checkbox.d.ts +2 -2
  102. package/checkbox/Checkbox.js +141 -182
  103. package/checkbox/Checkbox.stories.tsx +166 -136
  104. package/checkbox/Checkbox.test.d.ts +1 -0
  105. package/checkbox/Checkbox.test.js +199 -0
  106. package/checkbox/types.d.ts +20 -8
  107. package/chip/Chip.accessibility.test.d.ts +1 -0
  108. package/chip/Chip.accessibility.test.js +67 -0
  109. package/chip/Chip.d.ts +4 -0
  110. package/chip/Chip.js +51 -146
  111. package/chip/Chip.stories.tsx +109 -31
  112. package/chip/Chip.test.d.ts +1 -0
  113. package/chip/Chip.test.js +41 -0
  114. package/chip/types.d.ts +45 -0
  115. package/chip/types.js +5 -0
  116. package/common/coreTokens.d.ts +237 -0
  117. package/common/coreTokens.js +184 -0
  118. package/common/utils.d.ts +1 -0
  119. package/common/utils.js +6 -12
  120. package/common/variables.d.ts +1392 -0
  121. package/common/variables.js +1084 -1397
  122. package/container/Container.d.ts +4 -0
  123. package/container/Container.js +194 -0
  124. package/container/Container.stories.tsx +214 -0
  125. package/container/types.d.ts +74 -0
  126. package/container/types.js +5 -0
  127. package/contextual-menu/ContextualMenu.accessibility.test.d.ts +1 -0
  128. package/contextual-menu/ContextualMenu.accessibility.test.js +98 -0
  129. package/contextual-menu/ContextualMenu.d.ts +5 -0
  130. package/contextual-menu/ContextualMenu.js +88 -0
  131. package/contextual-menu/ContextualMenu.stories.tsx +232 -0
  132. package/contextual-menu/ContextualMenu.test.d.ts +1 -0
  133. package/contextual-menu/ContextualMenu.test.js +205 -0
  134. package/contextual-menu/GroupItem.d.ts +4 -0
  135. package/contextual-menu/GroupItem.js +67 -0
  136. package/contextual-menu/ItemAction.d.ts +4 -0
  137. package/contextual-menu/ItemAction.js +51 -0
  138. package/contextual-menu/MenuItem.d.ts +4 -0
  139. package/contextual-menu/MenuItem.js +29 -0
  140. package/contextual-menu/SingleItem.d.ts +4 -0
  141. package/contextual-menu/SingleItem.js +38 -0
  142. package/contextual-menu/types.d.ts +58 -0
  143. package/contextual-menu/types.js +5 -0
  144. package/date-input/Calendar.d.ts +4 -0
  145. package/date-input/Calendar.js +214 -0
  146. package/date-input/DateInput.accessibility.test.d.ts +1 -0
  147. package/date-input/DateInput.accessibility.test.js +230 -0
  148. package/date-input/DateInput.js +174 -313
  149. package/date-input/DateInput.stories.tsx +210 -56
  150. package/date-input/DateInput.test.d.ts +1 -0
  151. package/date-input/DateInput.test.js +809 -0
  152. package/date-input/DatePicker.d.ts +4 -0
  153. package/date-input/DatePicker.js +121 -0
  154. package/date-input/YearPicker.d.ts +4 -0
  155. package/date-input/YearPicker.js +100 -0
  156. package/date-input/types.d.ts +86 -22
  157. package/dialog/Dialog.accessibility.test.d.ts +1 -0
  158. package/dialog/Dialog.accessibility.test.js +69 -0
  159. package/dialog/Dialog.d.ts +1 -1
  160. package/dialog/Dialog.js +57 -129
  161. package/dialog/Dialog.stories.tsx +325 -167
  162. package/dialog/Dialog.test.d.ts +1 -0
  163. package/dialog/Dialog.test.js +371 -0
  164. package/dialog/types.d.ts +18 -25
  165. package/divider/Divider.accessibility.test.d.ts +1 -0
  166. package/divider/Divider.accessibility.test.js +33 -0
  167. package/divider/Divider.d.ts +4 -0
  168. package/divider/Divider.js +36 -0
  169. package/divider/Divider.stories.tsx +223 -0
  170. package/divider/Divider.test.d.ts +1 -0
  171. package/divider/Divider.test.js +38 -0
  172. package/divider/types.d.ts +21 -0
  173. package/divider/types.js +5 -0
  174. package/dropdown/Dropdown.accessibility.test.d.ts +1 -0
  175. package/dropdown/Dropdown.accessibility.test.js +184 -0
  176. package/dropdown/Dropdown.d.ts +1 -1
  177. package/dropdown/Dropdown.js +233 -330
  178. package/dropdown/Dropdown.stories.tsx +427 -0
  179. package/dropdown/Dropdown.test.d.ts +1 -0
  180. package/dropdown/Dropdown.test.js +629 -0
  181. package/dropdown/DropdownMenu.d.ts +4 -0
  182. package/dropdown/DropdownMenu.js +63 -0
  183. package/dropdown/DropdownMenuItem.d.ts +4 -0
  184. package/dropdown/DropdownMenuItem.js +71 -0
  185. package/dropdown/types.d.ts +38 -31
  186. package/file-input/FileInput.accessibility.test.d.ts +1 -0
  187. package/file-input/FileInput.accessibility.test.js +167 -0
  188. package/file-input/FileInput.d.ts +2 -2
  189. package/file-input/FileInput.js +271 -342
  190. package/file-input/FileInput.stories.tsx +618 -0
  191. package/file-input/FileInput.test.d.ts +1 -0
  192. package/file-input/FileInput.test.js +404 -0
  193. package/file-input/FileItem.d.ts +4 -14
  194. package/file-input/FileItem.js +64 -121
  195. package/file-input/types.d.ts +53 -11
  196. package/flex/Flex.d.ts +4 -0
  197. package/flex/Flex.js +57 -0
  198. package/flex/Flex.stories.tsx +112 -0
  199. package/flex/types.d.ts +97 -0
  200. package/flex/types.js +5 -0
  201. package/footer/Footer.accessibility.test.d.ts +1 -0
  202. package/footer/Footer.accessibility.test.js +125 -0
  203. package/footer/Footer.d.ts +1 -1
  204. package/footer/Footer.js +74 -200
  205. package/footer/{Footer.stories.jsx → Footer.stories.tsx} +96 -39
  206. package/footer/Footer.test.d.ts +1 -0
  207. package/footer/Footer.test.js +85 -0
  208. package/footer/Icons.d.ts +3 -0
  209. package/footer/Icons.js +54 -23
  210. package/footer/types.d.ts +40 -37
  211. package/grid/Grid.d.ts +7 -0
  212. package/grid/Grid.js +76 -0
  213. package/grid/Grid.stories.tsx +219 -0
  214. package/grid/types.d.ts +115 -0
  215. package/grid/types.js +5 -0
  216. package/header/Header.accessibility.test.d.ts +1 -0
  217. package/header/Header.accessibility.test.js +94 -0
  218. package/header/Header.d.ts +4 -3
  219. package/header/Header.js +105 -219
  220. package/header/Header.stories.tsx +168 -63
  221. package/header/Header.test.d.ts +1 -0
  222. package/header/Header.test.js +66 -0
  223. package/header/Icons.d.ts +2 -0
  224. package/header/Icons.js +5 -15
  225. package/header/types.d.ts +6 -18
  226. package/heading/Heading.accessibility.test.d.ts +1 -0
  227. package/heading/Heading.accessibility.test.js +33 -0
  228. package/heading/Heading.js +11 -33
  229. package/heading/Heading.stories.tsx +54 -0
  230. package/heading/Heading.test.d.ts +1 -0
  231. package/heading/Heading.test.js +156 -0
  232. package/heading/types.d.ts +7 -7
  233. package/icon/Icon.accessibility.test.d.ts +1 -0
  234. package/icon/Icon.accessibility.test.js +30 -0
  235. package/icon/Icon.d.ts +4 -0
  236. package/icon/Icon.js +33 -0
  237. package/icon/Icon.stories.tsx +28 -0
  238. package/icon/types.d.ts +4 -0
  239. package/icon/types.js +5 -0
  240. package/image/Image.accessibility.test.d.ts +1 -0
  241. package/image/Image.accessibility.test.js +56 -0
  242. package/image/Image.d.ts +4 -0
  243. package/image/Image.js +70 -0
  244. package/image/Image.stories.tsx +129 -0
  245. package/image/types.d.ts +72 -0
  246. package/image/types.js +5 -0
  247. package/inset/Inset.d.ts +3 -0
  248. package/inset/Inset.js +43 -0
  249. package/inset/Inset.stories.tsx +230 -0
  250. package/inset/types.d.ts +37 -0
  251. package/inset/types.js +5 -0
  252. package/layout/ApplicationLayout.d.ts +20 -0
  253. package/layout/ApplicationLayout.js +88 -186
  254. package/layout/ApplicationLayout.stories.tsx +162 -0
  255. package/layout/Icons.d.ts +7 -0
  256. package/layout/Icons.js +41 -48
  257. package/layout/types.d.ts +41 -0
  258. package/layout/types.js +5 -0
  259. package/link/Link.accessibility.test.d.ts +1 -0
  260. package/link/Link.accessibility.test.js +108 -0
  261. package/link/Link.d.ts +3 -2
  262. package/link/Link.js +65 -109
  263. package/link/Link.stories.tsx +161 -54
  264. package/link/Link.test.d.ts +1 -0
  265. package/link/Link.test.js +63 -0
  266. package/link/types.d.ts +15 -35
  267. package/main.d.ts +20 -14
  268. package/main.js +99 -98
  269. package/nav-tabs/NavTabs.accessibility.test.d.ts +1 -0
  270. package/nav-tabs/NavTabs.accessibility.test.js +44 -0
  271. package/nav-tabs/NavTabs.d.ts +7 -0
  272. package/nav-tabs/NavTabs.js +93 -0
  273. package/nav-tabs/NavTabs.stories.tsx +279 -0
  274. package/nav-tabs/NavTabs.test.d.ts +1 -0
  275. package/nav-tabs/NavTabs.test.js +77 -0
  276. package/nav-tabs/NavTabsContext.d.ts +3 -0
  277. package/nav-tabs/NavTabsContext.js +8 -0
  278. package/nav-tabs/Tab.d.ts +4 -0
  279. package/nav-tabs/Tab.js +117 -0
  280. package/nav-tabs/types.d.ts +52 -0
  281. package/nav-tabs/types.js +5 -0
  282. package/number-input/NumberInput.accessibility.test.d.ts +1 -0
  283. package/number-input/NumberInput.accessibility.test.js +228 -0
  284. package/number-input/NumberInput.js +48 -48
  285. package/number-input/NumberInput.stories.tsx +44 -28
  286. package/number-input/NumberInput.test.d.ts +1 -0
  287. package/number-input/NumberInput.test.js +989 -0
  288. package/number-input/NumberInputContext.d.ts +3 -0
  289. package/number-input/NumberInputContext.js +3 -11
  290. package/number-input/types.d.ts +34 -15
  291. package/package.json +53 -52
  292. package/paginator/Paginator.accessibility.test.d.ts +1 -0
  293. package/paginator/Paginator.accessibility.test.js +79 -0
  294. package/paginator/Paginator.js +47 -107
  295. package/paginator/Paginator.stories.tsx +24 -0
  296. package/paginator/Paginator.test.d.ts +1 -0
  297. package/paginator/Paginator.test.js +335 -0
  298. package/paginator/types.d.ts +3 -3
  299. package/paragraph/Paragraph.accessibility.test.d.ts +1 -0
  300. package/paragraph/Paragraph.accessibility.test.js +28 -0
  301. package/paragraph/Paragraph.d.ts +5 -0
  302. package/paragraph/Paragraph.js +22 -0
  303. package/paragraph/Paragraph.stories.tsx +27 -0
  304. package/password-input/PasswordInput.accessibility.test.d.ts +1 -0
  305. package/password-input/PasswordInput.accessibility.test.js +153 -0
  306. package/password-input/PasswordInput.js +61 -126
  307. package/password-input/PasswordInput.stories.tsx +3 -35
  308. package/password-input/PasswordInput.test.d.ts +1 -0
  309. package/password-input/PasswordInput.test.js +198 -0
  310. package/password-input/types.d.ts +35 -24
  311. package/progress-bar/ProgressBar.accessibility.test.d.ts +1 -0
  312. package/progress-bar/ProgressBar.accessibility.test.js +35 -0
  313. package/progress-bar/ProgressBar.js +69 -93
  314. package/progress-bar/ProgressBar.stories.tsx +93 -0
  315. package/progress-bar/ProgressBar.test.d.ts +1 -0
  316. package/progress-bar/ProgressBar.test.js +93 -0
  317. package/progress-bar/types.d.ts +3 -3
  318. package/quick-nav/QuickNav.accessibility.test.d.ts +1 -0
  319. package/quick-nav/QuickNav.accessibility.test.js +57 -0
  320. package/quick-nav/QuickNav.d.ts +4 -0
  321. package/quick-nav/QuickNav.js +94 -0
  322. package/quick-nav/QuickNav.stories.tsx +356 -0
  323. package/quick-nav/types.d.ts +21 -0
  324. package/quick-nav/types.js +5 -0
  325. package/radio-group/Radio.d.ts +4 -0
  326. package/radio-group/Radio.js +121 -0
  327. package/radio-group/RadioGroup.accessibility.test.d.ts +1 -0
  328. package/radio-group/RadioGroup.accessibility.test.js +97 -0
  329. package/radio-group/RadioGroup.d.ts +4 -0
  330. package/radio-group/RadioGroup.js +233 -0
  331. package/radio-group/RadioGroup.stories.tsx +214 -0
  332. package/radio-group/RadioGroup.test.d.ts +1 -0
  333. package/radio-group/RadioGroup.test.js +754 -0
  334. package/radio-group/types.d.ts +114 -0
  335. package/radio-group/types.js +5 -0
  336. package/resultset-table/Icons.d.ts +7 -0
  337. package/resultset-table/Icons.js +47 -0
  338. package/resultset-table/ResultsetTable.accessibility.test.d.ts +1 -0
  339. package/resultset-table/ResultsetTable.accessibility.test.js +285 -0
  340. package/resultset-table/ResultsetTable.d.ts +7 -0
  341. package/resultset-table/ResultsetTable.js +171 -0
  342. package/resultset-table/ResultsetTable.stories.tsx +413 -0
  343. package/resultset-table/ResultsetTable.test.d.ts +1 -0
  344. package/resultset-table/ResultsetTable.test.js +380 -0
  345. package/resultset-table/types.d.ts +100 -0
  346. package/resultset-table/types.js +5 -0
  347. package/select/Listbox.d.ts +4 -0
  348. package/select/Listbox.js +151 -0
  349. package/select/Option.d.ts +4 -0
  350. package/select/Option.js +89 -0
  351. package/select/Select.accessibility.test.d.ts +1 -0
  352. package/select/Select.accessibility.test.js +228 -0
  353. package/select/Select.d.ts +4 -0
  354. package/select/Select.js +248 -513
  355. package/select/Select.stories.tsx +602 -255
  356. package/select/Select.test.d.ts +1 -0
  357. package/select/Select.test.js +2268 -0
  358. package/select/types.d.ts +209 -0
  359. package/select/types.js +5 -0
  360. package/sidenav/Sidenav.accessibility.test.d.ts +1 -0
  361. package/sidenav/Sidenav.accessibility.test.js +59 -0
  362. package/sidenav/Sidenav.d.ts +6 -5
  363. package/sidenav/Sidenav.js +137 -72
  364. package/sidenav/Sidenav.stories.tsx +277 -0
  365. package/sidenav/Sidenav.test.d.ts +1 -0
  366. package/sidenav/Sidenav.test.js +37 -0
  367. package/sidenav/SidenavContext.d.ts +5 -0
  368. package/sidenav/SidenavContext.js +13 -0
  369. package/sidenav/types.d.ts +52 -26
  370. package/slider/Slider.accessibility.test.d.ts +1 -0
  371. package/slider/Slider.accessibility.test.js +104 -0
  372. package/slider/Slider.d.ts +2 -2
  373. package/slider/Slider.js +149 -183
  374. package/slider/Slider.stories.tsx +68 -65
  375. package/slider/Slider.test.d.ts +1 -0
  376. package/slider/Slider.test.js +257 -0
  377. package/slider/types.d.ts +11 -3
  378. package/spinner/Spinner.accessibility.test.d.ts +1 -0
  379. package/spinner/Spinner.accessibility.test.js +96 -0
  380. package/spinner/Spinner.js +35 -75
  381. package/spinner/{Spinner.stories.jsx → Spinner.stories.tsx} +53 -26
  382. package/spinner/Spinner.test.d.ts +1 -0
  383. package/spinner/Spinner.test.js +55 -0
  384. package/spinner/types.d.ts +3 -3
  385. package/status-light/StatusLight.accessibility.test.d.ts +1 -0
  386. package/status-light/StatusLight.accessibility.test.js +157 -0
  387. package/status-light/StatusLight.d.ts +4 -0
  388. package/status-light/StatusLight.js +51 -0
  389. package/status-light/StatusLight.stories.tsx +74 -0
  390. package/status-light/StatusLight.test.d.ts +1 -0
  391. package/status-light/StatusLight.test.js +25 -0
  392. package/status-light/types.d.ts +17 -0
  393. package/status-light/types.js +5 -0
  394. package/switch/Switch.accessibility.test.d.ts +1 -0
  395. package/switch/Switch.accessibility.test.js +98 -0
  396. package/switch/Switch.d.ts +2 -2
  397. package/switch/Switch.js +147 -115
  398. package/switch/Switch.stories.tsx +57 -68
  399. package/switch/Switch.test.d.ts +1 -0
  400. package/switch/Switch.test.js +180 -0
  401. package/switch/types.d.ts +13 -5
  402. package/table/DropdownTheme.js +62 -0
  403. package/table/Table.accessibility.test.d.ts +1 -0
  404. package/table/Table.accessibility.test.js +93 -0
  405. package/table/Table.d.ts +6 -2
  406. package/table/Table.js +80 -37
  407. package/table/Table.stories.tsx +663 -0
  408. package/table/Table.test.d.ts +1 -0
  409. package/table/Table.test.js +112 -0
  410. package/table/types.d.ts +34 -6
  411. package/tabs/Tab.d.ts +4 -0
  412. package/tabs/Tab.js +117 -0
  413. package/tabs/Tabs.accessibility.test.d.ts +1 -0
  414. package/tabs/Tabs.accessibility.test.js +56 -0
  415. package/tabs/Tabs.d.ts +1 -1
  416. package/tabs/Tabs.js +307 -145
  417. package/tabs/Tabs.stories.tsx +230 -0
  418. package/tabs/Tabs.test.d.ts +1 -0
  419. package/tabs/Tabs.test.js +276 -0
  420. package/tabs/types.d.ts +48 -27
  421. package/tag/Tag.accessibility.test.d.ts +1 -0
  422. package/tag/Tag.accessibility.test.js +69 -0
  423. package/tag/Tag.d.ts +1 -1
  424. package/tag/Tag.js +44 -86
  425. package/tag/Tag.stories.tsx +37 -30
  426. package/tag/Tag.test.d.ts +1 -0
  427. package/tag/Tag.test.js +41 -0
  428. package/tag/types.d.ts +25 -16
  429. package/text-input/Suggestion.d.ts +4 -0
  430. package/text-input/Suggestion.js +67 -0
  431. package/text-input/Suggestions.d.ts +4 -0
  432. package/text-input/Suggestions.js +94 -0
  433. package/text-input/TextInput.accessibility.test.d.ts +1 -0
  434. package/text-input/TextInput.accessibility.test.js +321 -0
  435. package/text-input/TextInput.d.ts +4 -0
  436. package/text-input/TextInput.js +336 -592
  437. package/text-input/TextInput.stories.tsx +474 -0
  438. package/text-input/TextInput.test.d.ts +1 -0
  439. package/text-input/TextInput.test.js +1756 -0
  440. package/text-input/types.d.ts +205 -0
  441. package/text-input/types.js +5 -0
  442. package/textarea/Textarea.accessibility.test.d.ts +1 -0
  443. package/textarea/Textarea.accessibility.test.js +155 -0
  444. package/textarea/Textarea.d.ts +4 -0
  445. package/textarea/Textarea.js +98 -183
  446. package/textarea/Textarea.stories.tsx +174 -0
  447. package/textarea/Textarea.test.d.ts +1 -0
  448. package/textarea/Textarea.test.js +406 -0
  449. package/textarea/types.d.ts +141 -0
  450. package/textarea/types.js +5 -0
  451. package/toggle-group/ToggleGroup.accessibility.test.d.ts +1 -0
  452. package/toggle-group/ToggleGroup.accessibility.test.js +107 -0
  453. package/toggle-group/ToggleGroup.d.ts +4 -0
  454. package/toggle-group/ToggleGroup.js +99 -143
  455. package/toggle-group/ToggleGroup.stories.tsx +79 -39
  456. package/toggle-group/ToggleGroup.test.d.ts +1 -0
  457. package/toggle-group/ToggleGroup.test.js +137 -0
  458. package/toggle-group/types.d.ts +114 -0
  459. package/toggle-group/types.js +5 -0
  460. package/typography/Typography.accessibility.test.d.ts +1 -0
  461. package/typography/Typography.accessibility.test.js +339 -0
  462. package/typography/Typography.d.ts +4 -0
  463. package/typography/Typography.js +23 -0
  464. package/typography/Typography.stories.tsx +198 -0
  465. package/typography/types.d.ts +18 -0
  466. package/typography/types.js +5 -0
  467. package/useTheme.d.ts +1145 -0
  468. package/useTheme.js +4 -11
  469. package/useTranslatedLabels.d.ts +85 -0
  470. package/useTranslatedLabels.js +14 -0
  471. package/utils/BaseTypography.d.ts +21 -0
  472. package/utils/BaseTypography.js +94 -0
  473. package/utils/FocusLock.d.ts +13 -0
  474. package/utils/FocusLock.js +124 -0
  475. package/wizard/Wizard.accessibility.test.d.ts +1 -0
  476. package/wizard/Wizard.accessibility.test.js +55 -0
  477. package/wizard/Wizard.d.ts +1 -1
  478. package/wizard/Wizard.js +122 -114
  479. package/wizard/{Wizard.stories.jsx → Wizard.stories.tsx} +67 -19
  480. package/wizard/Wizard.test.d.ts +1 -0
  481. package/wizard/Wizard.test.js +114 -0
  482. package/wizard/types.d.ts +15 -15
  483. package/ThemeContext.js +0 -246
  484. package/V3Select/V3Select.js +0 -455
  485. package/V3Select/index.d.ts +0 -27
  486. package/V3Textarea/V3Textarea.js +0 -260
  487. package/V3Textarea/index.d.ts +0 -27
  488. package/chip/index.d.ts +0 -22
  489. package/common/OpenSans.css +0 -81
  490. package/common/RequiredComponent.js +0 -32
  491. package/common/fonts/OpenSans-Bold.ttf +0 -0
  492. package/common/fonts/OpenSans-BoldItalic.ttf +0 -0
  493. package/common/fonts/OpenSans-ExtraBold.ttf +0 -0
  494. package/common/fonts/OpenSans-ExtraBoldItalic.ttf +0 -0
  495. package/common/fonts/OpenSans-Italic.ttf +0 -0
  496. package/common/fonts/OpenSans-Light.ttf +0 -0
  497. package/common/fonts/OpenSans-LightItalic.ttf +0 -0
  498. package/common/fonts/OpenSans-Regular.ttf +0 -0
  499. package/common/fonts/OpenSans-SemiBold.ttf +0 -0
  500. package/common/fonts/OpenSans-SemiBoldItalic.ttf +0 -0
  501. package/date/Date.js +0 -373
  502. package/date/index.d.ts +0 -27
  503. package/input-text/Icons.js +0 -22
  504. package/input-text/InputText.js +0 -611
  505. package/input-text/index.d.ts +0 -36
  506. package/paginator/Icons.js +0 -66
  507. package/progress-bar/ProgressBar.stories.jsx +0 -58
  508. package/radio/Radio.d.ts +0 -4
  509. package/radio/Radio.js +0 -174
  510. package/radio/Radio.stories.tsx +0 -192
  511. package/radio/types.d.ts +0 -54
  512. package/resultsetTable/ResultsetTable.js +0 -274
  513. package/resultsetTable/index.d.ts +0 -19
  514. package/select/index.d.ts +0 -131
  515. package/table/Table.stories.jsx +0 -276
  516. package/text-input/index.d.ts +0 -135
  517. package/textarea/Textarea.stories.jsx +0 -135
  518. package/textarea/index.d.ts +0 -117
  519. package/toggle/Toggle.js +0 -186
  520. package/toggle/index.d.ts +0 -21
  521. package/toggle-group/index.d.ts +0 -21
  522. package/upload/Upload.js +0 -201
  523. package/upload/buttons-upload/ButtonsUpload.js +0 -111
  524. package/upload/buttons-upload/Icons.js +0 -40
  525. package/upload/dragAndDropArea/DragAndDropArea.js +0 -225
  526. package/upload/dragAndDropArea/Icons.js +0 -39
  527. package/upload/file-upload/FileToUpload.js +0 -115
  528. package/upload/file-upload/Icons.js +0 -66
  529. package/upload/files-upload/FilesToUpload.js +0 -109
  530. package/upload/index.d.ts +0 -15
  531. package/upload/transaction/Icons.js +0 -160
  532. package/upload/transaction/Transaction.js +0 -104
  533. package/upload/transactions/Transactions.js +0 -94
  534. package/wizard/Icons.js +0 -65
  535. /package/{radio → action-icon}/types.js +0 -0
@@ -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
+ });