@strapi/design-system 1.3.0-beta.1 → 1.3.0-beta.3

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 (733) hide show
  1. package/Accordion.development.js +775 -0
  2. package/Accordion.js +9 -0
  3. package/Accordion.production.js +1 -0
  4. package/Alert.development.js +562 -0
  5. package/Alert.js +9 -0
  6. package/Alert.production.js +1 -0
  7. package/Avatar.development.js +485 -0
  8. package/Avatar.js +9 -0
  9. package/Avatar.production.js +1 -0
  10. package/Badge.development.js +494 -0
  11. package/Badge.js +9 -0
  12. package/Badge.production.js +1 -0
  13. package/BaseButton.development.js +285 -0
  14. package/BaseButton.js +9 -0
  15. package/BaseButton.production.js +1 -0
  16. package/BaseCheckbox.development.js +434 -0
  17. package/BaseCheckbox.js +9 -0
  18. package/BaseCheckbox.production.js +1 -0
  19. package/BaseLink.development.js +273 -0
  20. package/BaseLink.js +9 -0
  21. package/BaseLink.production.js +1 -0
  22. package/BaseRadio.development.js +321 -0
  23. package/BaseRadio.js +9 -0
  24. package/BaseRadio.production.js +1 -0
  25. package/Box.development.js +341 -0
  26. package/Box.js +9 -0
  27. package/Box.production.js +1 -0
  28. package/Breadcrumbs.development.js +518 -0
  29. package/Breadcrumbs.js +9 -0
  30. package/Breadcrumbs.production.js +1 -0
  31. package/Button.development.js +573 -0
  32. package/Button.js +9 -0
  33. package/Button.production.js +1 -0
  34. package/Card.development.js +746 -0
  35. package/Card.js +9 -0
  36. package/Card.production.js +1 -0
  37. package/CarouselInput.development.js +898 -0
  38. package/CarouselInput.js +9 -0
  39. package/CarouselInput.production.js +1 -0
  40. package/Checkbox.development.js +722 -0
  41. package/Checkbox.js +9 -0
  42. package/Checkbox.production.js +1 -0
  43. package/Combobox.development.js +934 -0
  44. package/Combobox.js +9 -0
  45. package/Combobox.production.js +1 -0
  46. package/DatePicker.development.js +1323 -0
  47. package/DatePicker.js +9 -0
  48. package/DatePicker.production.js +1 -0
  49. package/DateTimePicker.development.js +1622 -0
  50. package/DateTimePicker.js +9 -0
  51. package/DateTimePicker.production.js +1 -0
  52. package/Dialog.development.js +741 -0
  53. package/Dialog.js +9 -0
  54. package/Dialog.production.js +1 -0
  55. package/DismissibleLayer.development.js +218 -0
  56. package/DismissibleLayer.js +9 -0
  57. package/DismissibleLayer.production.js +1 -0
  58. package/Divider.development.js +398 -0
  59. package/Divider.js +9 -0
  60. package/Divider.production.js +1 -0
  61. package/EmptyStateLayout.development.js +425 -0
  62. package/EmptyStateLayout.js +9 -0
  63. package/EmptyStateLayout.production.js +1 -0
  64. package/Field.development.js +614 -0
  65. package/Field.js +9 -0
  66. package/Field.production.js +1 -0
  67. package/Flex.development.js +377 -0
  68. package/Flex.js +9 -0
  69. package/Flex.production.js +1 -0
  70. package/FocusTrap.development.js +341 -0
  71. package/FocusTrap.js +9 -0
  72. package/FocusTrap.production.js +1 -0
  73. package/Grid.development.js +422 -0
  74. package/Grid.js +9 -0
  75. package/Grid.production.js +1 -0
  76. package/Icon.development.js +376 -0
  77. package/Icon.js +9 -0
  78. package/Icon.production.js +1 -0
  79. package/IconButton.development.js +684 -0
  80. package/IconButton.js +9 -0
  81. package/IconButton.production.js +1 -0
  82. package/KeyboardNavigable.development.js +454 -0
  83. package/KeyboardNavigable.js +9 -0
  84. package/KeyboardNavigable.production.js +1 -0
  85. package/Layout.development.js +626 -0
  86. package/Layout.js +9 -0
  87. package/Layout.production.js +1 -0
  88. package/Link.development.js +492 -0
  89. package/Link.js +9 -0
  90. package/Link.production.js +1 -0
  91. package/LinkButton.development.js +573 -0
  92. package/LinkButton.js +9 -0
  93. package/LinkButton.production.js +1 -0
  94. package/LiveRegions.development.js +147 -0
  95. package/LiveRegions.js +9 -0
  96. package/LiveRegions.production.js +1 -0
  97. package/Loader.development.js +309 -0
  98. package/Loader.js +9 -0
  99. package/Loader.production.js +1 -0
  100. package/Main.development.js +410 -0
  101. package/Main.js +9 -0
  102. package/Main.production.js +1 -0
  103. package/MainNav.development.js +957 -0
  104. package/MainNav.js +9 -0
  105. package/MainNav.production.js +1 -0
  106. package/ModalLayout.development.js +895 -0
  107. package/ModalLayout.js +9 -0
  108. package/ModalLayout.production.js +1 -0
  109. package/NumberInput.development.js +733 -0
  110. package/NumberInput.js +9 -0
  111. package/NumberInput.production.js +1 -0
  112. package/Pagination.development.js +587 -0
  113. package/Pagination.js +9 -0
  114. package/Pagination.production.js +1 -0
  115. package/Popover.development.js +481 -0
  116. package/Popover.js +9 -0
  117. package/Popover.production.js +1 -0
  118. package/Portal.development.js +212 -0
  119. package/Portal.js +9 -0
  120. package/Portal.production.js +1 -0
  121. package/ProgressBar.development.js +273 -0
  122. package/ProgressBar.js +9 -0
  123. package/ProgressBar.production.js +1 -0
  124. package/Radio.development.js +518 -0
  125. package/Radio.js +9 -0
  126. package/Radio.production.js +1 -0
  127. package/RawTable.development.js +549 -0
  128. package/RawTable.js +9 -0
  129. package/RawTable.production.js +1 -0
  130. package/Searchbar.development.js +696 -0
  131. package/Searchbar.js +9 -0
  132. package/Searchbar.production.js +1 -0
  133. package/Select.development.js +1063 -0
  134. package/Select.js +9 -0
  135. package/Select.production.js +1 -0
  136. package/SimpleMenu.development.js +821 -0
  137. package/SimpleMenu.js +9 -0
  138. package/SimpleMenu.production.js +1 -0
  139. package/Stack.development.js +434 -0
  140. package/Stack.js +9 -0
  141. package/Stack.production.js +1 -0
  142. package/Status.development.js +494 -0
  143. package/Status.js +9 -0
  144. package/Status.production.js +1 -0
  145. package/SubNav.development.js +1123 -0
  146. package/SubNav.js +9 -0
  147. package/SubNav.production.js +1 -0
  148. package/Switch.development.js +434 -0
  149. package/Switch.js +9 -0
  150. package/Switch.production.js +1 -0
  151. package/Table.development.js +741 -0
  152. package/Table.js +9 -0
  153. package/Table.production.js +1 -0
  154. package/Tabs.development.js +590 -0
  155. package/Tabs.js +9 -0
  156. package/Tabs.production.js +1 -0
  157. package/Tag.development.js +494 -0
  158. package/Tag.js +9 -0
  159. package/Tag.production.js +1 -0
  160. package/TextButton.development.js +517 -0
  161. package/TextButton.js +9 -0
  162. package/TextButton.production.js +1 -0
  163. package/TextInput.development.js +662 -0
  164. package/TextInput.js +9 -0
  165. package/TextInput.production.js +1 -0
  166. package/Textarea.development.js +674 -0
  167. package/Textarea.js +9 -0
  168. package/Textarea.production.js +1 -0
  169. package/ThemeProvider.development.js +300 -0
  170. package/ThemeProvider.js +9 -0
  171. package/ThemeProvider.production.js +1 -0
  172. package/TimePicker.development.js +1098 -0
  173. package/TimePicker.js +9 -0
  174. package/TimePicker.production.js +1 -0
  175. package/ToggleCheckbox.development.js +542 -0
  176. package/ToggleCheckbox.js +9 -0
  177. package/ToggleCheckbox.production.js +1 -0
  178. package/ToggleInput.development.js +745 -0
  179. package/ToggleInput.js +9 -0
  180. package/ToggleInput.production.js +1 -0
  181. package/Tooltip.development.js +588 -0
  182. package/Tooltip.js +9 -0
  183. package/Tooltip.production.js +1 -0
  184. package/Typography.development.js +276 -0
  185. package/Typography.js +9 -0
  186. package/Typography.production.js +1 -0
  187. package/VisuallyHidden.development.js +146 -0
  188. package/VisuallyHidden.js +9 -0
  189. package/VisuallyHidden.production.js +1 -0
  190. package/index.development.js +4338 -0
  191. package/index.js +9 -0
  192. package/index.production.js +1 -0
  193. package/package.json +2 -2
  194. package/themes.development.js +254 -0
  195. package/themes.js +9 -0
  196. package/themes.production.js +1 -0
  197. package/v2/Breadcrumbs.development.js +906 -0
  198. package/v2/Breadcrumbs.js +9 -0
  199. package/v2/Breadcrumbs.production.js +1 -0
  200. package/v2/Link.development.js +505 -0
  201. package/v2/Link.js +9 -0
  202. package/v2/Link.production.js +1 -0
  203. package/v2/LinkButton.development.js +586 -0
  204. package/v2/LinkButton.js +9 -0
  205. package/v2/LinkButton.production.js +1 -0
  206. package/v2/MainNav.development.js +970 -0
  207. package/v2/MainNav.js +9 -0
  208. package/v2/MainNav.production.js +1 -0
  209. package/v2/Pagination.development.js +600 -0
  210. package/v2/Pagination.js +9 -0
  211. package/v2/Pagination.production.js +1 -0
  212. package/v2/SimpleMenu.development.js +834 -0
  213. package/v2/SimpleMenu.js +9 -0
  214. package/v2/SimpleMenu.production.js +1 -0
  215. package/v2/SubNav.development.js +1136 -0
  216. package/v2/SubNav.js +9 -0
  217. package/v2/SubNav.production.js +1 -0
  218. package/v2/index.development.js +1740 -0
  219. package/v2/index.js +9 -0
  220. package/v2/index.production.js +1 -0
  221. package/v2/package.json +81 -0
  222. package/.eslintignore +0 -3
  223. package/.eslintrc.js +0 -38
  224. package/.prettierrc.js +0 -7
  225. package/.storybook/components/Theme.js +0 -28
  226. package/.storybook/main.js +0 -13
  227. package/.storybook/manager.js +0 -12
  228. package/.storybook/preview.js +0 -42
  229. package/.storybook/utils/createCustomTheme.js +0 -26
  230. package/LICENSE +0 -20
  231. package/__mocks__/fileMock.js +0 -1
  232. package/__mocks__/styleMock.js +0 -1
  233. package/babel.config.js +0 -5
  234. package/createIndexFiles.js +0 -34
  235. package/global-setup.js +0 -4
  236. package/jest.config.js +0 -17
  237. package/playwright.config.js +0 -39
  238. package/src/Accordion/Accordion.js +0 -148
  239. package/src/Accordion/Accordion.stories.mdx +0 -327
  240. package/src/Accordion/AccordionContent.js +0 -26
  241. package/src/Accordion/AccordionContext.js +0 -5
  242. package/src/Accordion/AccordionGroup.js +0 -114
  243. package/src/Accordion/AccordionToggle.js +0 -192
  244. package/src/Accordion/__tests__/Accordion.e2e.js +0 -32
  245. package/src/Accordion/__tests__/AccordionKeyboard.e2e.js +0 -73
  246. package/src/Accordion/index.js +0 -4
  247. package/src/Accordion/utils.js +0 -15
  248. package/src/Alert/Alert.js +0 -144
  249. package/src/Alert/Alert.stories.mdx +0 -135
  250. package/src/Alert/__tests__/Alert.e2e.js +0 -39
  251. package/src/Alert/index.js +0 -1
  252. package/src/Alert/utils.js +0 -35
  253. package/src/Avatar/Avatar.js +0 -110
  254. package/src/Avatar/Avatar.stories.mdx +0 -67
  255. package/src/Avatar/AvatarGroup.js +0 -9
  256. package/src/Avatar/__tests__/Avatar.e2e.js +0 -23
  257. package/src/Avatar/__tests__/Avatar.spec.js +0 -153
  258. package/src/Avatar/constants.js +0 -2
  259. package/src/Avatar/index.js +0 -2
  260. package/src/Badge/Badge.js +0 -41
  261. package/src/Badge/Badge.stories.mdx +0 -57
  262. package/src/Badge/__tests__/Badge.e2e.js +0 -23
  263. package/src/Badge/index.js +0 -1
  264. package/src/BaseButton/BaseButton.js +0 -46
  265. package/src/BaseButton/BaseButton.stories.mdx +0 -32
  266. package/src/BaseButton/__tests__/BaseButton.e2e.js +0 -23
  267. package/src/BaseButton/index.js +0 -1
  268. package/src/BaseCheckbox/BaseCheckbox.js +0 -133
  269. package/src/BaseCheckbox/BaseCheckbox.stories.mdx +0 -107
  270. package/src/BaseCheckbox/__tests__/BaseCheckbox.e2e.js +0 -94
  271. package/src/BaseCheckbox/assets/checkmark-black.svg +0 -6
  272. package/src/BaseCheckbox/assets/checkmark.svg +0 -6
  273. package/src/BaseCheckbox/index.js +0 -1
  274. package/src/BaseCheckbox/utils.js +0 -7
  275. package/src/BaseLink/BaseLink.js +0 -38
  276. package/src/BaseLink/BaseLink.stories.mdx +0 -34
  277. package/src/BaseLink/__tests__/BaseLink.e2e.js +0 -23
  278. package/src/BaseLink/__tests__/BaseLink.spec.js +0 -26
  279. package/src/BaseLink/index.js +0 -1
  280. package/src/BaseRadio/BaseRadio.js +0 -69
  281. package/src/BaseRadio/BaseRadio.stories.mdx +0 -110
  282. package/src/BaseRadio/RadioGroup.js +0 -36
  283. package/src/BaseRadio/__tests__/BaseRadio.e2e.js +0 -90
  284. package/src/BaseRadio/context.js +0 -3
  285. package/src/BaseRadio/index.js +0 -2
  286. package/src/BaseRadio/utils.js +0 -30
  287. package/src/Box/Box.js +0 -104
  288. package/src/Box/Box.stories.mdx +0 -57
  289. package/src/Box/BoxProps.js +0 -99
  290. package/src/Box/__tests__/Box.e2e.js +0 -23
  291. package/src/Box/__tests__/Box.spec.js +0 -36
  292. package/src/Box/index.js +0 -1
  293. package/src/Breadcrumbs/Breadcrumbs.js +0 -58
  294. package/src/Breadcrumbs/Breadcrumbs.stories.mdx +0 -47
  295. package/src/Breadcrumbs/__tests__/Breadcrumbs.e2e.js +0 -23
  296. package/src/Breadcrumbs/index.js +0 -1
  297. package/src/Button/Button.js +0 -138
  298. package/src/Button/Button.stories.mdx +0 -216
  299. package/src/Button/__tests__/Button.e2e.js +0 -89
  300. package/src/Button/__tests__/utils.spec.js +0 -19
  301. package/src/Button/constants.js +0 -12
  302. package/src/Button/index.js +0 -1
  303. package/src/Button/utils.js +0 -170
  304. package/src/Card/Card.js +0 -35
  305. package/src/Card/Card.stories.mdx +0 -202
  306. package/src/Card/CardAction.js +0 -13
  307. package/src/Card/CardAsset.js +0 -49
  308. package/src/Card/CardBadge.js +0 -18
  309. package/src/Card/CardBody.js +0 -11
  310. package/src/Card/CardCheckbox.js +0 -14
  311. package/src/Card/CardContent.js +0 -16
  312. package/src/Card/CardContext.js +0 -5
  313. package/src/Card/CardHeader.js +0 -12
  314. package/src/Card/CardTimer.js +0 -23
  315. package/src/Card/CardTitle.js +0 -12
  316. package/src/Card/__tests__/Card.e2e.js +0 -164
  317. package/src/Card/index.js +0 -10
  318. package/src/Card/story-assets/first.jpg +0 -0
  319. package/src/CarouselInput/Carousel.js +0 -138
  320. package/src/CarouselInput/Carousel.stories.mdx +0 -149
  321. package/src/CarouselInput/CarouselActions.js +0 -6
  322. package/src/CarouselInput/CarouselImage.js +0 -39
  323. package/src/CarouselInput/CarouselInput.js +0 -80
  324. package/src/CarouselInput/CarouselSlide.js +0 -32
  325. package/src/CarouselInput/__tests__/CarouselImage.e2e.js +0 -15
  326. package/src/CarouselInput/__tests__/CarouselInput.e2e.js +0 -48
  327. package/src/CarouselInput/index.js +0 -5
  328. package/src/CarouselInput/story-assets/first.jpg +0 -0
  329. package/src/Checkbox/Checkbox.js +0 -63
  330. package/src/Checkbox/Checkbox.stories.mdx +0 -190
  331. package/src/Checkbox/__tests__/Checkbox.e2e.js +0 -96
  332. package/src/Checkbox/index.js +0 -1
  333. package/src/Combobox/Combobox.js +0 -421
  334. package/src/Combobox/Combobox.stories.mdx +0 -191
  335. package/src/Combobox/ComboboxList.js +0 -22
  336. package/src/Combobox/ComboboxOption.js +0 -36
  337. package/src/Combobox/__tests__/Combobox.e2e.js +0 -133
  338. package/src/Combobox/__tests__/utils.spec.js +0 -94
  339. package/src/Combobox/components.js +0 -69
  340. package/src/Combobox/index.js +0 -2
  341. package/src/Combobox/utils.js +0 -97
  342. package/src/DatePicker/DatePicker.js +0 -132
  343. package/src/DatePicker/DatePicker.stories.mdx +0 -172
  344. package/src/DatePicker/DatePickerCalendar.js +0 -134
  345. package/src/DatePicker/DatePickerTd.js +0 -51
  346. package/src/DatePicker/DatePickerTh.js +0 -39
  347. package/src/DatePicker/__tests__/DatePicker.e2e.js +0 -94
  348. package/src/DatePicker/__tests__/DatePicker.spec.js +0 -40
  349. package/src/DatePicker/compareDates.js +0 -9
  350. package/src/DatePicker/components.js +0 -45
  351. package/src/DatePicker/index.js +0 -1
  352. package/src/DatePicker/utils/formatDate.js +0 -5
  353. package/src/DatePicker/utils/generateWeeks.js +0 -58
  354. package/src/DatePicker/utils/getDayOfWeek.js +0 -24
  355. package/src/DatePicker/utils/getMonths.js +0 -10
  356. package/src/DatePicker/utils/getYears.js +0 -19
  357. package/src/DatePicker/utils/index.js +0 -5
  358. package/src/DatePicker/utils/tests/generateWeeks.spec.js +0 -136
  359. package/src/DatePicker/utils/tests/getMonths.spec.js +0 -21
  360. package/src/DatePicker/utils/tests/getYears.spec.js +0 -21
  361. package/src/DateTimePicker/DateTimePicker.js +0 -151
  362. package/src/DateTimePicker/DateTimePicker.stories.mdx +0 -114
  363. package/src/DateTimePicker/DateTimePickerProps.js +0 -85
  364. package/src/DateTimePicker/__tests__/DateTimePicker.e2e.js +0 -103
  365. package/src/DateTimePicker/__tests__/DateTimePicker.spec.js +0 -89
  366. package/src/DateTimePicker/__tests__/__snapshots__/DateTimePicker.spec.js.snap +0 -448
  367. package/src/DateTimePicker/__tests__/parseDate.test.js +0 -10
  368. package/src/DateTimePicker/index.js +0 -1
  369. package/src/DateTimePicker/parseDate.js +0 -11
  370. package/src/Dialog/Dialog.js +0 -86
  371. package/src/Dialog/Dialog.stories.mdx +0 -78
  372. package/src/Dialog/DialogBody.js +0 -36
  373. package/src/Dialog/DialogFooter.js +0 -38
  374. package/src/Dialog/__tests__/Dialog.e2e.js +0 -20
  375. package/src/Dialog/__tests__/Dialog.spec.js +0 -28
  376. package/src/Dialog/index.js +0 -3
  377. package/src/DismissibleLayer/DismissibleLayer.js +0 -87
  378. package/src/DismissibleLayer/DismissibleLayer.stories.mdx +0 -50
  379. package/src/DismissibleLayer/__test__/DimissibleLayer.spec.js +0 -44
  380. package/src/DismissibleLayer/index.js +0 -1
  381. package/src/Divider/Divider.js +0 -26
  382. package/src/Divider/Divider.stories.mdx +0 -55
  383. package/src/Divider/__tests__/Divider.e2e.js +0 -23
  384. package/src/Divider/index.js +0 -1
  385. package/src/EmptyStateLayout/EmptyStateLayout.js +0 -48
  386. package/src/EmptyStateLayout/EmptyStateLayout.stories.mdx +0 -87
  387. package/src/EmptyStateLayout/__tests__/EmptyStateLayout.e2e.js +0 -31
  388. package/src/EmptyStateLayout/index.js +0 -1
  389. package/src/EmptyStateLayout/story-assets/Illo.js +0 -51
  390. package/src/Field/Field.js +0 -29
  391. package/src/Field/Field.stories.mdx +0 -237
  392. package/src/Field/FieldAction.js +0 -25
  393. package/src/Field/FieldContext.js +0 -4
  394. package/src/Field/FieldError.js +0 -17
  395. package/src/Field/FieldHint.js +0 -17
  396. package/src/Field/FieldInput.js +0 -129
  397. package/src/Field/FieldLabel.js +0 -50
  398. package/src/Field/__tests__/Field.e2e.js +0 -61
  399. package/src/Field/index.js +0 -7
  400. package/src/Flex/Flex.js +0 -26
  401. package/src/Flex/Flex.stories.mdx +0 -45
  402. package/src/Flex/FlexProps.js +0 -41
  403. package/src/Flex/__tests__/Flex.e2e.js +0 -23
  404. package/src/Flex/index.js +0 -1
  405. package/src/FocusTrap/ExampleComponent.js +0 -71
  406. package/src/FocusTrap/FocusTrap.js +0 -83
  407. package/src/FocusTrap/FocusTrap.stories.mdx +0 -32
  408. package/src/FocusTrap/__tests__/FocusTrap.e2e.js +0 -126
  409. package/src/FocusTrap/index.js +0 -1
  410. package/src/Grid/Grid.js +0 -30
  411. package/src/Grid/Grid.stories.mdx +0 -112
  412. package/src/Grid/GridContext.js +0 -5
  413. package/src/Grid/GridItem.js +0 -40
  414. package/src/Grid/__tests__/Grid.e2e.js +0 -23
  415. package/src/Grid/index.js +0 -2
  416. package/src/Icon/Icon.js +0 -27
  417. package/src/Icon/Icon.stories.mdx +0 -41
  418. package/src/Icon/__tests__/Icon.e2e.js +0 -21
  419. package/src/Icon/index.js +0 -1
  420. package/src/IconButton/IconButton.js +0 -175
  421. package/src/IconButton/IconButton.stories.mdx +0 -153
  422. package/src/IconButton/__tests__/IconButton.e2e.js +0 -57
  423. package/src/IconButton/index.js +0 -1
  424. package/src/KeyboardNavigable/KeyboardNavigable.js +0 -96
  425. package/src/KeyboardNavigable/index.js +0 -1
  426. package/src/Layout/ActionLayout.js +0 -40
  427. package/src/Layout/ContentLayout.js +0 -15
  428. package/src/Layout/GridLayout.js +0 -12
  429. package/src/Layout/GridLayout.stories.mdx +0 -36
  430. package/src/Layout/HeaderLayout.js +0 -170
  431. package/src/Layout/HeaderLayout.stories.mdx +0 -175
  432. package/src/Layout/Layout.js +0 -31
  433. package/src/Layout/Layout.stories.mdx +0 -240
  434. package/src/Layout/TwoColsLayout.js +0 -26
  435. package/src/Layout/TwoColsLayout.stories.mdx +0 -46
  436. package/src/Layout/__tests__/GridLayout.e2e.js +0 -23
  437. package/src/Layout/__tests__/HeaderLayout.e2e.js +0 -83
  438. package/src/Layout/__tests__/Layout.e2e.js +0 -23
  439. package/src/Layout/__tests__/TwoColsLayout.e2e.js +0 -23
  440. package/src/Layout/index.js +0 -6
  441. package/src/Link/Link.js +0 -105
  442. package/src/Link/Link.stories.mdx +0 -57
  443. package/src/Link/__tests__/Link.e2e.js +0 -23
  444. package/src/Link/index.js +0 -1
  445. package/src/LinkButton/LinkButton.js +0 -113
  446. package/src/LinkButton/LinkButton.stories.mdx +0 -153
  447. package/src/LinkButton/__tests__/LinkButton.e2e.js +0 -89
  448. package/src/LinkButton/index.js +0 -1
  449. package/src/LiveRegions/LiveRegions.js +0 -13
  450. package/src/LiveRegions/LiveRegions.stories.mdx +0 -76
  451. package/src/LiveRegions/StoryComponent.js +0 -26
  452. package/src/LiveRegions/__tests__/LiveRegions.spec.js +0 -200
  453. package/src/LiveRegions/constants.js +0 -5
  454. package/src/LiveRegions/index.js +0 -1
  455. package/src/LiveRegions/useNotifyAT.js +0 -39
  456. package/src/Loader/Loader.js +0 -40
  457. package/src/Loader/Loader.stories.mdx +0 -48
  458. package/src/Loader/__tests__/Loader.e2e.js +0 -23
  459. package/src/Loader/assets/loader.svg +0 -3
  460. package/src/Loader/index.js +0 -1
  461. package/src/Main/Main.js +0 -24
  462. package/src/Main/SkipToContent.js +0 -29
  463. package/src/Main/index.js +0 -2
  464. package/src/MainNav/MainNav.js +0 -31
  465. package/src/MainNav/MainNav.stories.mdx +0 -197
  466. package/src/MainNav/MainNavContext.js +0 -5
  467. package/src/MainNav/NavBrand.js +0 -76
  468. package/src/MainNav/NavCondense.js +0 -44
  469. package/src/MainNav/NavLink.js +0 -143
  470. package/src/MainNav/NavSection.js +0 -53
  471. package/src/MainNav/NavSections.js +0 -20
  472. package/src/MainNav/NavUser.js +0 -53
  473. package/src/MainNav/__tests__/MainNav.e2e.js +0 -23
  474. package/src/MainNav/index.js +0 -7
  475. package/src/MainNav/strapi-img.png +0 -0
  476. package/src/ModalLayout/ModalBody.js +0 -12
  477. package/src/ModalLayout/ModalContext.js +0 -4
  478. package/src/ModalLayout/ModalFooter.js +0 -37
  479. package/src/ModalLayout/ModalHeader.js +0 -35
  480. package/src/ModalLayout/ModalLayout.js +0 -58
  481. package/src/ModalLayout/ModalLayout.stories.mdx +0 -100
  482. package/src/ModalLayout/__tests__/ModalLayout.e2e.js +0 -19
  483. package/src/ModalLayout/__tests__/ModalLayout.spec.js +0 -596
  484. package/src/ModalLayout/index.js +0 -4
  485. package/src/NumberInput/NumberInput.js +0 -253
  486. package/src/NumberInput/NumberInput.stories.mdx +0 -319
  487. package/src/NumberInput/__tests__/NumberInput.e2e.js +0 -194
  488. package/src/NumberInput/index.js +0 -1
  489. package/src/Pagination/Pagination.js +0 -37
  490. package/src/Pagination/Pagination.stories.mdx +0 -97
  491. package/src/Pagination/PaginationContext.js +0 -4
  492. package/src/Pagination/__tests__/Pagination.e2e.js +0 -23
  493. package/src/Pagination/assets/next.svg +0 -3
  494. package/src/Pagination/assets/previous.svg +0 -3
  495. package/src/Pagination/components.js +0 -147
  496. package/src/Pagination/index.js +0 -2
  497. package/src/Popover/Popover.js +0 -167
  498. package/src/Popover/Popover.stories.mdx +0 -167
  499. package/src/Popover/__tests__/Popover.e2e.js +0 -48
  500. package/src/Popover/__tests__/Popover.spec.js +0 -153
  501. package/src/Popover/index.js +0 -1
  502. package/src/Portal/Portal.js +0 -25
  503. package/src/Portal/Portal.stories.mdx +0 -33
  504. package/src/Portal/__tests__/Portal.e2e.js +0 -23
  505. package/src/Portal/index.js +0 -1
  506. package/src/ProgressBar/ProgressBar.js +0 -57
  507. package/src/ProgressBar/ProgressBar.stories.mdx +0 -47
  508. package/src/ProgressBar/__tests__/ProgressBar.e2e.js +0 -41
  509. package/src/ProgressBar/index.js +0 -1
  510. package/src/Radio/Radio.js +0 -25
  511. package/src/Radio/Radio.stories.mdx +0 -66
  512. package/src/Radio/__tests__/Radio.e2e.js +0 -66
  513. package/src/Radio/__tests__/Radio.spec.js +0 -56
  514. package/src/Radio/index.js +0 -2
  515. package/src/RawTable/RawCell.js +0 -182
  516. package/src/RawTable/RawTable.js +0 -123
  517. package/src/RawTable/RawTable.stories.mdx +0 -258
  518. package/src/RawTable/RawTableContext.js +0 -10
  519. package/src/RawTable/RawTbody.js +0 -18
  520. package/src/RawTable/RawThead.js +0 -15
  521. package/src/RawTable/RawTr.js +0 -20
  522. package/src/RawTable/__tests__/RawTable.e2e.js +0 -344
  523. package/src/RawTable/focusFocusable.js +0 -7
  524. package/src/RawTable/index.js +0 -5
  525. package/src/Searchbar/SearchForm.js +0 -3
  526. package/src/Searchbar/Searchbar.js +0 -103
  527. package/src/Searchbar/Searchbar.stories.mdx +0 -115
  528. package/src/Searchbar/__tests__/Searchbar.e2e.js +0 -52
  529. package/src/Searchbar/index.js +0 -2
  530. package/src/Select/MultiSelectNested.js +0 -31
  531. package/src/Select/OptGroup.js +0 -27
  532. package/src/Select/Option.js +0 -123
  533. package/src/Select/Select.js +0 -318
  534. package/src/Select/Select.stories.mdx +0 -362
  535. package/src/Select/SelectButton.js +0 -77
  536. package/src/Select/SelectList.js +0 -113
  537. package/src/Select/SelectTags.js +0 -50
  538. package/src/Select/__tests__/Select.e2e.js +0 -238
  539. package/src/Select/__tests__/Select.spec.js +0 -1020
  540. package/src/Select/components.js +0 -51
  541. package/src/Select/constants.js +0 -6
  542. package/src/Select/hooks/useButtonRef.js +0 -31
  543. package/src/Select/hooks/useListRef.js +0 -35
  544. package/src/Select/index.js +0 -5
  545. package/src/Select/utils.js +0 -27
  546. package/src/SimpleMenu/SimpleMenu.js +0 -252
  547. package/src/SimpleMenu/SimpleMenu.stories.mdx +0 -220
  548. package/src/SimpleMenu/__tests__/SimpleMenu.e2e.js +0 -98
  549. package/src/SimpleMenu/__tests__/SimpleMenu.spec.js +0 -48
  550. package/src/SimpleMenu/index.js +0 -1
  551. package/src/SimpleMenu/utils.js +0 -12
  552. package/src/Stack/Stack.js +0 -75
  553. package/src/Stack/Stack.stories.mdx +0 -66
  554. package/src/Stack/__tests__/Stack.e2e.js +0 -43
  555. package/src/Stack/index.js +0 -1
  556. package/src/Status/Status.js +0 -76
  557. package/src/Status/Status.stories.mdx +0 -80
  558. package/src/Status/__tests__/Status.e2e.js +0 -23
  559. package/src/Status/__tests__/Status.spec.js +0 -48
  560. package/src/Status/index.js +0 -1
  561. package/src/SubNav/SubNav.js +0 -25
  562. package/src/SubNav/SubNav.stories.mdx +0 -234
  563. package/src/SubNav/SubNavHeader.js +0 -122
  564. package/src/SubNav/SubNavLink.js +0 -92
  565. package/src/SubNav/SubNavLinkSection.js +0 -75
  566. package/src/SubNav/SubNavSection.js +0 -75
  567. package/src/SubNav/SubNavSectionLabel.js +0 -67
  568. package/src/SubNav/SubNavSections.js +0 -20
  569. package/src/SubNav/__tests__/SubNav.e2e.js +0 -23
  570. package/src/SubNav/index.js +0 -6
  571. package/src/Switch/Switch.js +0 -97
  572. package/src/Switch/Switch.stories.mdx +0 -76
  573. package/src/Switch/__tests__/Switch.e2e.js +0 -33
  574. package/src/Switch/index.js +0 -1
  575. package/src/Table/Cell.js +0 -49
  576. package/src/Table/TFooter.js +0 -58
  577. package/src/Table/Table.js +0 -96
  578. package/src/Table/Table.stories.mdx +0 -330
  579. package/src/Table/Tbody.js +0 -13
  580. package/src/Table/Thead.js +0 -11
  581. package/src/Table/Tr.js +0 -28
  582. package/src/Table/__tests__/Table.e2e.js +0 -41
  583. package/src/Table/index.js +0 -6
  584. package/src/Tabs/TabGroup.js +0 -46
  585. package/src/Tabs/TabPanels.js +0 -32
  586. package/src/Tabs/Tabs.js +0 -227
  587. package/src/Tabs/Tabs.stories.mdx +0 -211
  588. package/src/Tabs/TabsContext.js +0 -5
  589. package/src/Tabs/__tests__/Tabs.e2e.js +0 -253
  590. package/src/Tabs/components.js +0 -66
  591. package/src/Tabs/index.js +0 -3
  592. package/src/Tabs/useTabsFocus.js +0 -28
  593. package/src/Tag/Tag.js +0 -72
  594. package/src/Tag/Tag.stories.mdx +0 -47
  595. package/src/Tag/__tests__/Tag.e2e.js +0 -37
  596. package/src/Tag/index.js +0 -1
  597. package/src/TextButton/TextButton.js +0 -102
  598. package/src/TextButton/TextButton.stories.mdx +0 -71
  599. package/src/TextButton/__tests__/TextButton.e2e.js +0 -23
  600. package/src/TextButton/index.js +0 -1
  601. package/src/TextInput/TextInput.js +0 -67
  602. package/src/TextInput/TextInput.stories.mdx +0 -228
  603. package/src/TextInput/__tests__/TextInput.e2e.js +0 -73
  604. package/src/TextInput/index.js +0 -1
  605. package/src/Textarea/Textarea.js +0 -74
  606. package/src/Textarea/Textarea.stories.mdx +0 -105
  607. package/src/Textarea/TextareaInput.js +0 -77
  608. package/src/Textarea/__tests__/Textarea.e2e.js +0 -37
  609. package/src/Textarea/index.js +0 -1
  610. package/src/ThemeProvider/ThemeProvider.js +0 -193
  611. package/src/ThemeProvider/hooks.js +0 -5
  612. package/src/ThemeProvider/index.js +0 -2
  613. package/src/TimePicker/TimePicker.js +0 -128
  614. package/src/TimePicker/TimePicker.stories.mdx +0 -171
  615. package/src/TimePicker/__tests__/TimePicker.e2e.js +0 -37
  616. package/src/TimePicker/__tests__/TimePicker.spec.js +0 -2099
  617. package/src/TimePicker/index.js +0 -1
  618. package/src/ToggleCheckbox/ToggleCheckbox.js +0 -169
  619. package/src/ToggleCheckbox/ToggleCheckbox.stories.mdx +0 -96
  620. package/src/ToggleCheckbox/__tests__/ToggleCheckbox.e2e.js +0 -59
  621. package/src/ToggleCheckbox/index.js +0 -1
  622. package/src/ToggleInput/ToggleInput.js +0 -89
  623. package/src/ToggleInput/ToggleInput.stories.mdx +0 -171
  624. package/src/ToggleInput/__tests__/ToggleInput.e2e.js +0 -109
  625. package/src/ToggleInput/index.js +0 -1
  626. package/src/Tooltip/Tooltip.js +0 -72
  627. package/src/Tooltip/Tooltip.stories.mdx +0 -127
  628. package/src/Tooltip/__tests__/Tooltip.e2e.js +0 -33
  629. package/src/Tooltip/__tests__/Tooltip.spec.js +0 -306
  630. package/src/Tooltip/hooks/useTooltipHandlers.js +0 -39
  631. package/src/Tooltip/hooks/useTooltipLayout.js +0 -21
  632. package/src/Tooltip/index.js +0 -1
  633. package/src/Tooltip/utils/__tests__/positionTooltip.spec.js +0 -114
  634. package/src/Tooltip/utils/positionTooltip.js +0 -83
  635. package/src/Typography/Typography.js +0 -24
  636. package/src/Typography/Typography.stories.mdx +0 -86
  637. package/src/Typography/TypographyProps.js +0 -30
  638. package/src/Typography/__tests__/Typography.e2e.js +0 -25
  639. package/src/Typography/__tests__/Typography.spec.js +0 -32
  640. package/src/Typography/__tests__/__snapshots__/Typography.spec.js.snap +0 -103
  641. package/src/Typography/constants.js +0 -9
  642. package/src/Typography/index.js +0 -1
  643. package/src/Typography/utils.js +0 -69
  644. package/src/VisuallyHidden/VisuallyHidden.js +0 -12
  645. package/src/VisuallyHidden/index.js +0 -1
  646. package/src/helpers/__tests__/useId.spec.js +0 -39
  647. package/src/helpers/escapeSelector.js +0 -1
  648. package/src/helpers/genId.js +0 -2
  649. package/src/helpers/getDefaultLocale.js +0 -33
  650. package/src/helpers/getFocusableNodes.js +0 -35
  651. package/src/helpers/handleResponsiveValues.js +0 -34
  652. package/src/helpers/keyboardKeys.js +0 -17
  653. package/src/helpers/setOpacity.js +0 -4
  654. package/src/helpers/setTabIndexOnFirstItem.js +0 -7
  655. package/src/helpers/useElementOnScreen.js +0 -27
  656. package/src/helpers/useId.js +0 -8
  657. package/src/helpers/useIntersection.js +0 -31
  658. package/src/helpers/useLockScroll.js +0 -14
  659. package/src/helpers/usePrevious.js +0 -9
  660. package/src/helpers/useResizeObserver.js +0 -22
  661. package/src/index.js +0 -65
  662. package/src/themes/ColorButton.js +0 -24
  663. package/src/themes/Theme.stories.mdx +0 -227
  664. package/src/themes/__tests__/extendTheme.spec.js +0 -119
  665. package/src/themes/colors.js +0 -46
  666. package/src/themes/common-theme.js +0 -19
  667. package/src/themes/darkTheme/dark-colors.js +0 -49
  668. package/src/themes/darkTheme/dark-shadows.js +0 -10
  669. package/src/themes/darkTheme/index.js +0 -9
  670. package/src/themes/extendTheme.js +0 -60
  671. package/src/themes/index.js +0 -4
  672. package/src/themes/lightTheme/index.js +0 -9
  673. package/src/themes/lightTheme/light-colors.js +0 -49
  674. package/src/themes/lightTheme/light-shadows.js +0 -10
  675. package/src/themes/sizes.js +0 -10
  676. package/src/themes/utils.js +0 -50
  677. package/src/v2/Breadcrumbs/Breadcrumbs.js +0 -45
  678. package/src/v2/Breadcrumbs/Breadcrumbs.stories.mdx +0 -129
  679. package/src/v2/Breadcrumbs/Crumb.js +0 -30
  680. package/src/v2/Breadcrumbs/CrumbLink.js +0 -33
  681. package/src/v2/Breadcrumbs/CrumbSimpleMenu.js +0 -30
  682. package/src/v2/Breadcrumbs/Divider.js +0 -16
  683. package/src/v2/Breadcrumbs/__tests__/Breadcrumbs.e2e.js +0 -47
  684. package/src/v2/Breadcrumbs/__tests__/Breadcrumbs.spec.js +0 -47
  685. package/src/v2/Breadcrumbs/index.js +0 -4
  686. package/src/v2/Link/Link.js +0 -79
  687. package/src/v2/Link/Link.stories.mdx +0 -113
  688. package/src/v2/Link/__tests__/Link.e2e.js +0 -23
  689. package/src/v2/Link/index.js +0 -1
  690. package/src/v2/LinkButton/LinkButton.js +0 -105
  691. package/src/v2/LinkButton/LinkButton.stories.mdx +0 -153
  692. package/src/v2/LinkButton/__tests__/LinkButton.e2e.js +0 -89
  693. package/src/v2/LinkButton/index.js +0 -1
  694. package/src/v2/MainNav/MainNav.js +0 -31
  695. package/src/v2/MainNav/MainNav.stories.mdx +0 -197
  696. package/src/v2/MainNav/MainNavContext.js +0 -5
  697. package/src/v2/MainNav/NavBrand.js +0 -79
  698. package/src/v2/MainNav/NavCondense.js +0 -44
  699. package/src/v2/MainNav/NavLink.js +0 -143
  700. package/src/v2/MainNav/NavSection.js +0 -53
  701. package/src/v2/MainNav/NavSections.js +0 -20
  702. package/src/v2/MainNav/NavUser.js +0 -53
  703. package/src/v2/MainNav/__tests__/MainNav.e2e.js +0 -23
  704. package/src/v2/MainNav/index.js +0 -7
  705. package/src/v2/MainNav/strapi-img.png +0 -0
  706. package/src/v2/Pagination/Pagination.js +0 -37
  707. package/src/v2/Pagination/Pagination.stories.mdx +0 -97
  708. package/src/v2/Pagination/PaginationContext.js +0 -4
  709. package/src/v2/Pagination/__tests__/Pagination.e2e.js +0 -23
  710. package/src/v2/Pagination/assets/next.svg +0 -3
  711. package/src/v2/Pagination/assets/previous.svg +0 -3
  712. package/src/v2/Pagination/components.js +0 -136
  713. package/src/v2/Pagination/index.js +0 -2
  714. package/src/v2/SimpleMenu/SimpleMenu.js +0 -252
  715. package/src/v2/SimpleMenu/SimpleMenu.stories.mdx +0 -220
  716. package/src/v2/SimpleMenu/__tests__/SimpleMenu.e2e.js +0 -100
  717. package/src/v2/SimpleMenu/__tests__/SimpleMenu.spec.js +0 -48
  718. package/src/v2/SimpleMenu/index.js +0 -1
  719. package/src/v2/SimpleMenu/utils.js +0 -12
  720. package/src/v2/SubNav/SubNav.js +0 -25
  721. package/src/v2/SubNav/SubNav.stories.mdx +0 -234
  722. package/src/v2/SubNav/SubNavHeader.js +0 -122
  723. package/src/v2/SubNav/SubNavLink.js +0 -95
  724. package/src/v2/SubNav/SubNavLinkSection.js +0 -75
  725. package/src/v2/SubNav/SubNavSection.js +0 -75
  726. package/src/v2/SubNav/SubNavSectionLabel.js +0 -67
  727. package/src/v2/SubNav/SubNavSections.js +0 -20
  728. package/src/v2/SubNav/__tests__/SubNav.e2e.js +0 -23
  729. package/src/v2/SubNav/index.js +0 -6
  730. package/src/v2/index.js +0 -7
  731. package/test-bundler.js +0 -35
  732. package/tests/check-exports.spec.js +0 -36
  733. package/webpack.config.js +0 -84
@@ -1,66 +0,0 @@
1
- <!--- Radio.stories.mdx --->
2
-
3
- import { useState } from 'react';
4
- import { Meta, Story, Canvas } from '@storybook/addon-docs';
5
- import { ArgsTable } from '@storybook/addon-docs';
6
- import { Radio, RadioGroup } from './';
7
- import { Typography } from '../Typography';
8
-
9
- <Meta title="Design System/Components/Radio" component={Radio} />
10
-
11
- # Radio
12
-
13
- Radio buttons allow users to choose a single value from a range of options.
14
-
15
- **Best practices**
16
-
17
- - When a user picks an option, the previous one is automatically deselected.
18
- - Radio buttons should be used when there is at least two options.
19
- - Label of the Radio button should be concise and straightforward.
20
- - Use the Checkbox component if the user could select one or several values.
21
- - Start all Radio button labels with a capital letter.
22
- - There is no need to include Radio buttons in a Select component when only a single value can be selected.
23
- - Radio buttons should be used sparingly in the interface.
24
- - Radio buttons should be used only when it is not obvious enough that a choice is required.
25
- - Radio buttons should not be used in Table components.
26
- - Use Switch or Toggle component to make binary choices.
27
-
28
- [View source](https://github.com/strapi/design-system/tree/main/packages/strapi-design-system/src/Radio)
29
-
30
- ## Imports
31
-
32
- ```js
33
- import { Radio, RadioGroup } from '@strapi/design-system/Radio';
34
- ```
35
-
36
- ## Usage
37
-
38
- Radio buttons allow users to choose a single value from a range of at least two options.
39
-
40
- <Canvas>
41
- <Story name="base">
42
- {() => {
43
- const [selected, setSelected] = useState();
44
- return (
45
- <div>
46
- <Typography variant="beta" id="trophy-champions">
47
- Make a choice
48
- </Typography>
49
- <RadioGroup
50
- labelledBy="trophy-champions"
51
- onChange={(e) => setSelected(e.target.value)}
52
- value={selected}
53
- name="meal"
54
- >
55
- <Radio value="pizza">Pizza</Radio>
56
- <Radio value="bagel">Bagel</Radio>
57
- </RadioGroup>
58
- </div>
59
- );
60
- }}
61
- </Story>
62
- </Canvas>
63
-
64
- ## Props
65
-
66
- <ArgsTable of={Radio} />
@@ -1,66 +0,0 @@
1
- import { injectAxe, checkA11y } from 'axe-playwright';
2
-
3
- import { test, expect } from '@playwright/test';
4
-
5
- test.describe.parallel('Radio', () => {
6
- test.describe('light mode', () => {
7
- test.beforeEach(async ({ page }) => {
8
- // This is the URL of the Storybook Iframe
9
- await page.goto('/iframe.html?id=design-system-components-radio--base&viewMode=story');
10
- await injectAxe(page);
11
- });
12
-
13
- test('triggers axe on the document', async ({ page }) => {
14
- await checkA11y(page);
15
- });
16
-
17
- test('moves to the next element when pressing ArrowDown', async ({ page }) => {
18
- await page.focus('[value="pizza"]');
19
- await page.keyboard.press('ArrowDown');
20
-
21
- const secondBox = await page.$('[value="bagel"]');
22
- if (secondBox) {
23
- expect(await secondBox.isChecked()).toBe(true);
24
- }
25
- });
26
-
27
- test('moves to the next element when pressing ArrowRight', async ({ page }) => {
28
- await page.focus('[value="pizza"]');
29
- await page.keyboard.press('ArrowRight');
30
-
31
- const secondBox = await page.$('[value="bagel"]');
32
- if (secondBox) {
33
- expect(await secondBox.isChecked()).toBe(true);
34
- }
35
- });
36
-
37
- test('moves to the previous element when pressing ArrowUp', async ({ page }) => {
38
- await page.focus('[value="bagel"]');
39
- await page.keyboard.press('ArrowUp');
40
-
41
- const pizzaRadio = await page.$('[value="pizza"]');
42
- if (pizzaRadio) {
43
- expect(await pizzaRadio.isChecked()).toBe(true);
44
- }
45
- });
46
-
47
- test('moves to the previous element when pressing ArrowLeft', async ({ page }) => {
48
- await page.focus('[value="bagel"]');
49
- await page.keyboard.press('ArrowLeft');
50
-
51
- const pizzaRadio = await page.$('[value="pizza"]');
52
- if (pizzaRadio) {
53
- expect(await pizzaRadio.isChecked()).toBe(true);
54
- }
55
- });
56
- });
57
-
58
- test.describe('dark mode', () => {
59
- test('triggers axe on the document', async ({ page }) => {
60
- // This is the URL of the Storybook Iframe
61
- await page.goto('/iframe.html?id=design-system-components-radio--base&viewMode=story&theme=dark');
62
- await injectAxe(page);
63
- await checkA11y(page);
64
- });
65
- });
66
- });
@@ -1,56 +0,0 @@
1
- import React from 'react';
2
- import { render, fireEvent } from '@testing-library/react';
3
- import { RadioGroup, Radio } from '../';
4
- import { ThemeProvider } from '../../ThemeProvider';
5
- import { lightTheme } from '../../themes';
6
-
7
- describe('Radio/RadioGroup', () => {
8
- it('selects a Radio button when a value is passed in to RadioGroup', () => {
9
- const onChangeMock = jest.fn();
10
- const { getByRole } = render(
11
- <ThemeProvider theme={lightTheme}>
12
- <p id="food">Food choices</p>
13
- <RadioGroup labelledBy="food" onChange={onChangeMock} value="pizza" name="meal">
14
- <Radio value="pizza">Pizza</Radio>
15
- <Radio value="bagel">Bagel</Radio>
16
- </RadioGroup>
17
- </ThemeProvider>,
18
- );
19
-
20
- expect(getByRole('radio', { name: 'Bagel' })).not.toBeChecked();
21
- expect(getByRole('radio', { name: 'Pizza' })).toBeChecked();
22
- });
23
-
24
- it('keeps all radio buttons unselected when value passed into RadioGroup is empty', () => {
25
- const onChangeMock = jest.fn();
26
- const { getByRole } = render(
27
- <ThemeProvider theme={lightTheme}>
28
- <p id="food">Food choices</p>
29
- <RadioGroup labelledBy="food" onChange={onChangeMock} value="" name="meal">
30
- <Radio value="pizza">Pizza</Radio>
31
- <Radio value="bagel">Bagel</Radio>
32
- </RadioGroup>
33
- </ThemeProvider>,
34
- );
35
-
36
- expect(getByRole('radio', { name: 'Bagel' })).not.toBeChecked();
37
- expect(getByRole('radio', { name: 'Pizza' })).not.toBeChecked();
38
- });
39
-
40
- it('calls onChange prop when Radio button is clicked', () => {
41
- const onChangeMock = jest.fn();
42
- const { getByRole } = render(
43
- <ThemeProvider theme={lightTheme}>
44
- <p id="food">Food choices</p>
45
- <RadioGroup labelledBy="food" onChange={onChangeMock} value="" name="meal">
46
- <Radio value="pizza">Pizza</Radio>
47
- <Radio value="bagel">Bagel</Radio>
48
- </RadioGroup>
49
- </ThemeProvider>,
50
- );
51
-
52
- fireEvent.click(getByRole('radio', { name: 'Pizza' }));
53
-
54
- expect(onChangeMock.mock.calls[0][0].target.value).toBe('pizza');
55
- });
56
- });
@@ -1,2 +0,0 @@
1
- export * from './Radio';
2
- export { RadioGroup } from '../BaseRadio/RadioGroup';
@@ -1,182 +0,0 @@
1
- import React, { useLayoutEffect, useRef, useState } from 'react';
2
- import PropTypes from 'prop-types';
3
-
4
- import { Box } from '../Box';
5
- import { getFocusableNodes, getFocusableNodesWithKeyboardNav } from '../helpers/getFocusableNodes';
6
- import { KeyboardKeys } from '../helpers/keyboardKeys';
7
-
8
- import { useTable } from './RawTableContext';
9
-
10
- export const RawTh = (props) => <RawTd {...props} as="th" />;
11
-
12
- export const RawTd = ({ coords, as, ...props }) => {
13
- const tdRef = useRef(null);
14
- const { rowIndex, colIndex, setTableValues } = useTable();
15
- const [isActive, setIsActive] = useState(false);
16
-
17
- /** @type {import("react").KeyboardEventHandler<HTMLTableCellElement> } */
18
- const handleKeyDown = (e) => {
19
- const focusableNodes = getFocusableNodes(tdRef.current, true);
20
-
21
- /**
22
- * If the cell does not have focusable children or if it has focusable children
23
- * without keyboard navigation, we should not run the handler.
24
- */
25
- if (
26
- focusableNodes.length === 0 ||
27
- (focusableNodes.length === 1 && getFocusableNodesWithKeyboardNav(focusableNodes).length === 0)
28
- ) {
29
- return;
30
- /**
31
- * This allows cells that **only** have buttons in them to still be
32
- * navigable with the keyboard arrow keys (left / right) as if they were grid cells.
33
- *
34
- * If there are nextNodes (next child node) then we stop the table's keyboard navigation
35
- * handlers from happening.
36
- */
37
- } else if (focusableNodes.length > 1 && !Boolean(focusableNodes.find((node) => node.tagName !== 'BUTTON'))) {
38
- e.preventDefault();
39
- const focussedButtonIndex = focusableNodes.findIndex((node) => node === document.activeElement);
40
- if (e.key === KeyboardKeys.RIGHT) {
41
- const nextNode = focusableNodes[focussedButtonIndex + 1];
42
- if (nextNode) {
43
- e.stopPropagation();
44
- nextNode.focus();
45
- }
46
- } else if (e.key === KeyboardKeys.LEFT) {
47
- const nextNode = focusableNodes[focussedButtonIndex - 1];
48
- if (nextNode) {
49
- e.stopPropagation();
50
- nextNode.focus();
51
- }
52
- }
53
- return;
54
- }
55
-
56
- if (e.key === KeyboardKeys.ENTER && !isActive) {
57
- setIsActive(true);
58
- /**
59
- * Cells should be "escapeable" with the escape key or enter key
60
- */
61
- } else if ((e.key === KeyboardKeys.ESCAPE || e.key === KeyboardKeys.ENTER) && isActive) {
62
- setIsActive(false);
63
- tdRef.current.focus();
64
- } else if (isActive) {
65
- /**
66
- * This stops the table navigation from working
67
- */
68
- e.stopPropagation();
69
- }
70
- };
71
-
72
- const isFocused = rowIndex === coords.row - 1 && colIndex === coords.col - 1;
73
-
74
- /**
75
- * Handles tabindex of the rendered cell element
76
- */
77
- useLayoutEffect(() => {
78
- const focusableNodes = getFocusableNodes(tdRef.current, true);
79
-
80
- /**
81
- * We should focus the cell if there are no focussable children inside
82
- * If there is only one focusable child and it has it's own keyboard navigation
83
- * Or if there is more than one focusable child unless those children
84
- * are exclusively buttons.
85
- */
86
- if (
87
- focusableNodes.length === 0 ||
88
- (focusableNodes.length === 1 && getFocusableNodesWithKeyboardNav(focusableNodes).length !== 0) ||
89
- (focusableNodes.length > 1 && Boolean(focusableNodes.find((node) => node.tagName !== 'BUTTON')))
90
- ) {
91
- tdRef.current.setAttribute('tabIndex', !isActive && isFocused ? 0 : -1);
92
-
93
- focusableNodes.forEach((node, index) => {
94
- node.setAttribute('tabIndex', isActive ? 0 : -1);
95
- /**
96
- * When a cell is active we want to focus the
97
- * first focusable element simulating a focus trap
98
- */
99
- if (isActive && index === 0) {
100
- node.focus();
101
- }
102
- });
103
- } else {
104
- focusableNodes.forEach((node) => {
105
- node.setAttribute('tabIndex', isFocused ? 0 : -1);
106
- });
107
- }
108
- }, [isActive, isFocused]);
109
-
110
- /**
111
- * This handles the case where you click on a focusable
112
- * node that has it's own keyboard nav (e.g. Input)
113
- */
114
- useLayoutEffect(() => {
115
- const focusableNodes = getFocusableNodes(tdRef.current, true);
116
-
117
- const handleFocusableNodeFocus = () => {
118
- /**
119
- * If there's 1 or more focusable children and at least one has keyboard navigation
120
- * or the children are exclusively button elements the cell should be using the "active" system
121
- */
122
- if (
123
- focusableNodes.length >= 1 &&
124
- (getFocusableNodesWithKeyboardNav(focusableNodes).length !== 0 ||
125
- !Boolean(focusableNodes.find((node) => node.tagName !== 'BUTTON')))
126
- ) {
127
- setIsActive(true);
128
- }
129
- /**
130
- * This function is wrapped in `useCallback` so we can safely
131
- * assume that the reference will not change
132
- */
133
- setTableValues({ rowIndex: coords.row - 1, colIndex: coords.col - 1 });
134
- };
135
-
136
- focusableNodes.forEach((node) => {
137
- node.addEventListener('focus', handleFocusableNodeFocus);
138
- });
139
-
140
- return () => {
141
- const focusableNodes = getFocusableNodes(tdRef.current, true);
142
- focusableNodes.forEach((node) => {
143
- node.removeEventListener('focus', handleFocusableNodeFocus);
144
- });
145
- };
146
- }, []);
147
-
148
- return <Box as={as ? as : 'td'} ref={tdRef} onKeyDown={handleKeyDown} {...props} />;
149
- };
150
-
151
- RawTh.defaultProps = {
152
- coords: {},
153
- };
154
-
155
- RawTh.propTypes = {
156
- ['aria-colindex']: PropTypes.number.isRequired,
157
- children: PropTypes.node,
158
- /**
159
- * Position of the cell in the table
160
- */
161
- coords: PropTypes.shape({
162
- col: PropTypes.number,
163
- row: PropTypes.number,
164
- }),
165
- };
166
-
167
- RawTd.defaultProps = {
168
- coords: {},
169
- };
170
-
171
- RawTd.propTypes = {
172
- ['aria-colindex']: PropTypes.number.isRequired,
173
- as: PropTypes.oneOf(['td', 'th']),
174
- children: PropTypes.node,
175
- /**
176
- * Position of the cell in the table
177
- */
178
- coords: PropTypes.shape({
179
- col: PropTypes.number,
180
- row: PropTypes.number,
181
- }),
182
- };
@@ -1,123 +0,0 @@
1
- import React, { useCallback, useEffect, useRef, useState } from 'react';
2
- import PropTypes from 'prop-types';
3
- import { RawTableContext } from './RawTableContext';
4
- import { KeyboardKeys } from '../helpers/keyboardKeys';
5
- import { focusFocusable } from './focusFocusable';
6
-
7
- export const RawTable = ({ colCount, rowCount, jumpStep, initialCol, initialRow, ...props }) => {
8
- const tableRef = useRef(null);
9
- const mountedRef = useRef(false);
10
- /**
11
- * Rows will always have n+1 line because of the <tr><th></th></tr> elements
12
- */
13
- const [rowIndex, setRowIndex] = useState(initialRow);
14
- const [colIndex, setColIndex] = useState(initialCol);
15
-
16
- const setTableValues = useCallback(({ colIndex, rowIndex }) => {
17
- setColIndex(colIndex);
18
- setRowIndex(rowIndex);
19
- }, []);
20
-
21
- useEffect(() => {
22
- if (mountedRef.current) {
23
- focusFocusable(tableRef.current);
24
- }
25
-
26
- if (!mountedRef.current) {
27
- mountedRef.current = true;
28
- }
29
- }, [colIndex, rowIndex]);
30
-
31
- const handleKeyDown = (e) => {
32
- switch (e.key) {
33
- case KeyboardKeys.RIGHT: {
34
- e.preventDefault();
35
- setColIndex((prevColIndex) => (prevColIndex < colCount - 1 ? prevColIndex + 1 : prevColIndex));
36
-
37
- break;
38
- }
39
-
40
- case KeyboardKeys.LEFT: {
41
- e.preventDefault();
42
- setColIndex((prevColIndex) => (prevColIndex > 0 ? prevColIndex - 1 : prevColIndex));
43
-
44
- break;
45
- }
46
-
47
- case KeyboardKeys.UP: {
48
- e.preventDefault();
49
- setRowIndex((prevRowIndex) => (prevRowIndex > 0 ? prevRowIndex - 1 : prevRowIndex));
50
-
51
- break;
52
- }
53
-
54
- case KeyboardKeys.DOWN: {
55
- e.preventDefault();
56
- setRowIndex((prevRowIndex) => (prevRowIndex < rowCount - 1 ? prevRowIndex + 1 : prevRowIndex));
57
-
58
- break;
59
- }
60
-
61
- case KeyboardKeys.HOME: {
62
- e.preventDefault();
63
- if (e.ctrlKey) {
64
- setRowIndex(0);
65
- }
66
-
67
- setColIndex(0);
68
-
69
- break;
70
- }
71
-
72
- case KeyboardKeys.END: {
73
- e.preventDefault();
74
- if (e.ctrlKey) {
75
- setRowIndex(rowCount - 1);
76
- }
77
-
78
- setColIndex(colCount - 1);
79
-
80
- break;
81
- }
82
-
83
- case KeyboardKeys.PAGE_DOWN: {
84
- e.preventDefault();
85
-
86
- setRowIndex((prevRowIndex) => (prevRowIndex + jumpStep < rowCount ? prevRowIndex + jumpStep : rowCount - 1));
87
-
88
- break;
89
- }
90
-
91
- case KeyboardKeys.PAGE_UP: {
92
- e.preventDefault();
93
-
94
- setRowIndex((prevRowIndex) => (prevRowIndex - jumpStep > 0 ? prevRowIndex - jumpStep : 0));
95
-
96
- break;
97
- }
98
-
99
- default:
100
- break;
101
- }
102
- };
103
-
104
- return (
105
- <RawTableContext.Provider value={{ rowIndex, colIndex, setTableValues }}>
106
- <table ref={tableRef} aria-rowcount={rowCount} aria-colcount={colCount} onKeyDown={handleKeyDown} {...props} />
107
- </RawTableContext.Provider>
108
- );
109
- };
110
-
111
- RawTable.defaultProps = {
112
- jumpStep: 3,
113
- initialCol: 0,
114
- initialRow: 0,
115
- };
116
-
117
- RawTable.propTypes = {
118
- colCount: PropTypes.number.isRequired,
119
- initialCol: PropTypes.number,
120
- initialRow: PropTypes.number,
121
- jumpStep: PropTypes.number,
122
- rowCount: PropTypes.number.isRequired,
123
- };