@amsterdam/design-system-react 2.0.2 → 2.2.0

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 (302) hide show
  1. package/dist/Accordion/Accordion.d.ts +3 -3
  2. package/dist/Accordion/AccordionSection.d.ts +5 -5
  3. package/dist/Avatar/Avatar.d.ts +2 -2
  4. package/dist/Badge/Badge.d.ts +4 -4
  5. package/dist/Blockquote/Blockquote.d.ts +5 -5
  6. package/dist/Breakout/BreakoutCell.d.ts +2 -2
  7. package/dist/Button/Button.d.ts +7 -5
  8. package/dist/Button/Button.js +1 -0
  9. package/dist/Card/Card.d.ts +8 -8
  10. package/dist/Card/CardHeading.d.ts +3 -3
  11. package/dist/Card/CardHeadingGroup.d.ts +5 -5
  12. package/dist/Card/CardImage.d.ts +2 -2
  13. package/dist/Checkbox/Checkbox.d.ts +5 -5
  14. package/dist/Column/Column.d.ts +5 -5
  15. package/dist/DateInput/DateInput.d.ts +4 -4
  16. package/dist/DescriptionList/DescriptionList.d.ts +5 -5
  17. package/dist/Dialog/Dialog.d.ts +6 -7
  18. package/dist/Field/Field.d.ts +5 -5
  19. package/dist/FieldSet/FieldSet.d.ts +31 -10
  20. package/dist/FieldSet/FieldSet.js +4 -3
  21. package/dist/Figure/Figure.d.ts +3 -3
  22. package/dist/Figure/FigureCaption.d.ts +5 -5
  23. package/dist/FileList/FileList.d.ts +2 -2
  24. package/dist/FileList/FileListItem.d.ts +4 -4
  25. package/dist/Grid/Grid.d.ts +2 -2
  26. package/dist/Grid/GridCell.d.ts +2 -2
  27. package/dist/Heading/Heading.d.ts +10 -11
  28. package/dist/Heading/Heading.js +1 -0
  29. package/dist/Hint/Hint.d.ts +1 -0
  30. package/dist/Hint/Hint.js +2 -2
  31. package/dist/Icon/Icon.d.ts +0 -4
  32. package/dist/IconButton/IconButton.d.ts +4 -2
  33. package/dist/IconButton/IconButton.js +1 -0
  34. package/dist/Image/Image.d.ts +5 -5
  35. package/dist/Image/Image.js +1 -1
  36. package/dist/ImageSlider/ImageSlider.d.ts +4 -4
  37. package/dist/ImageSlider/ImageSliderItem.d.ts +5 -5
  38. package/dist/ImageSlider/ImageSliderThumbnails.d.ts +5 -5
  39. package/dist/InvalidFormAlert/InvalidFormAlertWithErrors.d.ts +2 -2
  40. package/dist/Label/Label.d.ts +25 -6
  41. package/dist/Label/Label.js +3 -2
  42. package/dist/Link/Link.d.ts +4 -4
  43. package/dist/LinkList/LinkList.d.ts +1 -1
  44. package/dist/LinkList/LinkListLink.d.ts +9 -4
  45. package/dist/LinkList/LinkListLink.js +2 -0
  46. package/dist/Logo/Logo.d.ts +2 -2
  47. package/dist/Menu/Menu.d.ts +31 -10
  48. package/dist/Menu/Menu.js +6 -1
  49. package/dist/Menu/MenuLink.d.ts +10 -4
  50. package/dist/OrderedList/OrderedList.d.ts +5 -5
  51. package/dist/Page/Page.d.ts +6 -2
  52. package/dist/Page/Page.js +1 -1
  53. package/dist/PageHeader/PageHeader.d.ts +8 -7
  54. package/dist/PageHeader/PageHeaderGridCellNarrowWindowOnly.d.ts +1 -1
  55. package/dist/PageHeader/PageHeaderGridCellNarrowWindowOnly.js +0 -4
  56. package/dist/PageHeader/PageHeaderMenuIcon.js +1 -1
  57. package/dist/PageHeader/PageHeaderMenuLink.d.ts +13 -6
  58. package/dist/PageHeader/PageHeaderMenuLink.js +3 -6
  59. package/dist/PageHeading/PageHeading.d.ts +5 -5
  60. package/dist/Pagination/LinkItem.d.ts +3 -3
  61. package/dist/Pagination/Pagination.d.ts +4 -4
  62. package/dist/Paragraph/Paragraph.d.ts +5 -9
  63. package/dist/PasswordInput/PasswordInput.d.ts +4 -4
  64. package/dist/Radio/Radio.d.ts +5 -5
  65. package/dist/Row/Row.d.ts +5 -5
  66. package/dist/SearchField/SearchField.d.ts +2 -2
  67. package/dist/SearchField/SearchFieldButton.js +1 -1
  68. package/dist/SearchField/SearchFieldInput.d.ts +2 -2
  69. package/dist/Select/Select.d.ts +5 -5
  70. package/dist/Spotlight/Spotlight.d.ts +6 -6
  71. package/dist/Spotlight/Spotlight.js +0 -4
  72. package/dist/StandaloneLink/StandaloneLink.d.ts +4 -4
  73. package/dist/Table/TableCaption.d.ts +0 -4
  74. package/dist/TableOfContents/TableOfContents.d.ts +7 -7
  75. package/dist/TableOfContents/TableOfContentsLink.d.ts +4 -4
  76. package/dist/Tabs/Tabs.d.ts +11 -11
  77. package/dist/Tabs/TabsButton.d.ts +5 -5
  78. package/dist/Tabs/TabsPanel.d.ts +5 -5
  79. package/dist/TextArea/TextArea.d.ts +12 -6
  80. package/dist/TextInput/TextInput.d.ts +4 -4
  81. package/dist/TimeInput/TimeInput.d.ts +4 -4
  82. package/dist/UnorderedList/UnorderedList.d.ts +5 -5
  83. package/dist/common/useIsAfterBreakpoint.d.ts +4 -0
  84. package/dist/common/useIsAfterBreakpoint.js +4 -4
  85. package/dist/index.cjs.js +62 -44
  86. package/dist/index.cjs.js.map +1 -1
  87. package/dist/index.d.ts +293 -218
  88. package/dist/index.esm.js +62 -44
  89. package/dist/index.esm.js.map +1 -1
  90. package/dist/tsconfig.build.tsbuildinfo +1 -0
  91. package/package.json +21 -20
  92. package/dist/Accordion/Accordion.test.d.ts +0 -5
  93. package/dist/Accordion/Accordion.test.js +0 -44
  94. package/dist/Accordion/AccordionSection.test.d.ts +0 -5
  95. package/dist/Accordion/AccordionSection.test.js +0 -100
  96. package/dist/ActionGroup/ActionGroup.test.d.ts +0 -5
  97. package/dist/ActionGroup/ActionGroup.test.js +0 -33
  98. package/dist/Alert/Alert.test.d.ts +0 -5
  99. package/dist/Alert/Alert.test.js +0 -74
  100. package/dist/Avatar/Avatar.test.d.ts +0 -5
  101. package/dist/Avatar/Avatar.test.js +0 -63
  102. package/dist/Badge/Badge.test.d.ts +0 -5
  103. package/dist/Badge/Badge.test.js +0 -43
  104. package/dist/Blockquote/Blockquote.test.d.ts +0 -5
  105. package/dist/Blockquote/Blockquote.test.js +0 -46
  106. package/dist/Breadcrumb/Breadcrumb.test.d.ts +0 -5
  107. package/dist/Breadcrumb/Breadcrumb.test.js +0 -45
  108. package/dist/Breadcrumb/BreadcrumbLink.test.d.ts +0 -5
  109. package/dist/Breadcrumb/BreadcrumbLink.test.js +0 -40
  110. package/dist/Breakout/Breakout.test.d.ts +0 -5
  111. package/dist/Breakout/Breakout.test.js +0 -62
  112. package/dist/Breakout/BreakoutCell.test.d.ts +0 -5
  113. package/dist/Breakout/BreakoutCell.test.js +0 -128
  114. package/dist/Button/Button.test.d.ts +0 -5
  115. package/dist/Button/Button.test.js +0 -114
  116. package/dist/CallToActionLink/CallToActionLink.test.d.ts +0 -5
  117. package/dist/CallToActionLink/CallToActionLink.test.js +0 -33
  118. package/dist/Card/Card.test.d.ts +0 -5
  119. package/dist/Card/Card.test.js +0 -33
  120. package/dist/Card/CardHeading.test.d.ts +0 -5
  121. package/dist/Card/CardHeading.test.js +0 -38
  122. package/dist/Card/CardHeadingGroup.test.d.ts +0 -5
  123. package/dist/Card/CardHeadingGroup.test.js +0 -38
  124. package/dist/Card/CardImage.test.d.ts +0 -5
  125. package/dist/Card/CardImage.test.js +0 -33
  126. package/dist/Card/CardLink.test.d.ts +0 -5
  127. package/dist/Card/CardLink.test.js +0 -33
  128. package/dist/CharacterCount/CharacterCount.test.d.ts +0 -5
  129. package/dist/CharacterCount/CharacterCount.test.js +0 -38
  130. package/dist/Checkbox/Checkbox.test.d.ts +0 -5
  131. package/dist/Checkbox/Checkbox.test.js +0 -142
  132. package/dist/Column/Column.test.d.ts +0 -5
  133. package/dist/Column/Column.test.js +0 -59
  134. package/dist/DateInput/DateInput.test.d.ts +0 -5
  135. package/dist/DateInput/DateInput.test.js +0 -58
  136. package/dist/DescriptionList/DescriptionList.test.d.ts +0 -5
  137. package/dist/DescriptionList/DescriptionList.test.js +0 -43
  138. package/dist/DescriptionList/DescriptionListDescription.test.d.ts +0 -5
  139. package/dist/DescriptionList/DescriptionListDescription.test.js +0 -33
  140. package/dist/DescriptionList/DescriptionListSection.test.d.ts +0 -5
  141. package/dist/DescriptionList/DescriptionListSection.test.js +0 -33
  142. package/dist/DescriptionList/DescriptionListTerm.test.d.ts +0 -5
  143. package/dist/DescriptionList/DescriptionListTerm.test.js +0 -33
  144. package/dist/Dialog/Dialog.test.d.ts +0 -5
  145. package/dist/Dialog/Dialog.test.js +0 -82
  146. package/dist/ErrorMessage/ErrorMessage.test.d.ts +0 -5
  147. package/dist/ErrorMessage/ErrorMessage.test.js +0 -53
  148. package/dist/Field/Field.test.d.ts +0 -5
  149. package/dist/Field/Field.test.js +0 -38
  150. package/dist/FieldSet/FieldSet.test.d.ts +0 -5
  151. package/dist/FieldSet/FieldSet.test.js +0 -63
  152. package/dist/Figure/Figure.test.d.ts +0 -5
  153. package/dist/Figure/Figure.test.js +0 -33
  154. package/dist/Figure/FigureCaption.test.d.ts +0 -5
  155. package/dist/Figure/FigureCaption.test.js +0 -38
  156. package/dist/FileInput/FileInput.test.d.ts +0 -5
  157. package/dist/FileInput/FileInput.test.js +0 -33
  158. package/dist/FileList/FileList.test.d.ts +0 -5
  159. package/dist/FileList/FileList.test.js +0 -33
  160. package/dist/FileList/FileListItem.test.d.ts +0 -5
  161. package/dist/FileList/FileListItem.test.js +0 -44
  162. package/dist/Grid/Grid.test.d.ts +0 -5
  163. package/dist/Grid/Grid.test.js +0 -69
  164. package/dist/Grid/GridCell.test.d.ts +0 -5
  165. package/dist/Grid/GridCell.test.js +0 -84
  166. package/dist/Heading/Heading.test.d.ts +0 -5
  167. package/dist/Heading/Heading.test.js +0 -70
  168. package/dist/Hint/Hint.test.d.ts +0 -5
  169. package/dist/Hint/Hint.test.js +0 -53
  170. package/dist/Icon/Icon.test.d.ts +0 -5
  171. package/dist/Icon/Icon.test.js +0 -60
  172. package/dist/IconButton/IconButton.test.d.ts +0 -5
  173. package/dist/IconButton/IconButton.test.js +0 -48
  174. package/dist/Image/Image.test.d.ts +0 -5
  175. package/dist/Image/Image.test.js +0 -43
  176. package/dist/ImageSlider/ImageSlider.test.d.ts +0 -5
  177. package/dist/ImageSlider/ImageSlider.test.js +0 -70
  178. package/dist/ImageSlider/ImageSliderControls.test.d.ts +0 -5
  179. package/dist/ImageSlider/ImageSliderControls.test.js +0 -25
  180. package/dist/ImageSlider/ImageSliderItem.test.d.ts +0 -5
  181. package/dist/ImageSlider/ImageSliderItem.test.js +0 -37
  182. package/dist/ImageSlider/ImageSliderScroller.test.d.ts +0 -5
  183. package/dist/ImageSlider/ImageSliderScroller.test.js +0 -37
  184. package/dist/ImageSlider/ImageSliderThumbnails.test.d.ts +0 -5
  185. package/dist/ImageSlider/ImageSliderThumbnails.test.js +0 -52
  186. package/dist/InvalidFormAlert/InvalidFormAlert.test.d.ts +0 -5
  187. package/dist/InvalidFormAlert/InvalidFormAlert.test.js +0 -108
  188. package/dist/Label/Label.test.d.ts +0 -5
  189. package/dist/Label/Label.test.js +0 -77
  190. package/dist/Link/Link.test.d.ts +0 -5
  191. package/dist/Link/Link.test.js +0 -43
  192. package/dist/LinkList/LinkList.test.d.ts +0 -5
  193. package/dist/LinkList/LinkList.test.js +0 -33
  194. package/dist/LinkList/LinkListLink.test.d.ts +0 -5
  195. package/dist/LinkList/LinkListLink.test.js +0 -54
  196. package/dist/Logo/Logo.test.d.ts +0 -5
  197. package/dist/Logo/Logo.test.js +0 -33
  198. package/dist/Mark/Mark.test.d.ts +0 -5
  199. package/dist/Mark/Mark.test.js +0 -33
  200. package/dist/Menu/Menu.test.d.ts +0 -5
  201. package/dist/Menu/Menu.test.js +0 -38
  202. package/dist/Menu/MenuLink.test.d.ts +0 -5
  203. package/dist/Menu/MenuLink.test.js +0 -56
  204. package/dist/OrderedList/OrderedList.test.d.ts +0 -5
  205. package/dist/OrderedList/OrderedList.test.js +0 -55
  206. package/dist/OrderedList/OrderedListItem.test.d.ts +0 -5
  207. package/dist/OrderedList/OrderedListItem.test.js +0 -32
  208. package/dist/Overlap/Overlap.test.d.ts +0 -5
  209. package/dist/Overlap/Overlap.test.js +0 -38
  210. package/dist/Page/Page.test.d.ts +0 -5
  211. package/dist/Page/Page.test.js +0 -33
  212. package/dist/PageFooter/PageFooter.test.d.ts +0 -5
  213. package/dist/PageFooter/PageFooter.test.js +0 -33
  214. package/dist/PageFooter/PageFooterMenu.test.d.ts +0 -5
  215. package/dist/PageFooter/PageFooterMenu.test.js +0 -35
  216. package/dist/PageFooter/PageFooterMenuLink.test.d.ts +0 -5
  217. package/dist/PageFooter/PageFooterMenuLink.test.js +0 -33
  218. package/dist/PageFooter/PageFooterSpotlight.test.d.ts +0 -5
  219. package/dist/PageFooter/PageFooterSpotlight.test.js +0 -33
  220. package/dist/PageHeader/PageHeader.test.d.ts +0 -6
  221. package/dist/PageHeader/PageHeader.test.js +0 -135
  222. package/dist/PageHeader/PageHeaderGridCellNarrowWindowOnly.test.d.ts +0 -5
  223. package/dist/PageHeader/PageHeaderGridCellNarrowWindowOnly.test.js +0 -38
  224. package/dist/PageHeader/PageHeaderMenuLink.test.d.ts +0 -5
  225. package/dist/PageHeader/PageHeaderMenuLink.test.js +0 -45
  226. package/dist/PageHeading/PageHeading.test.d.ts +0 -5
  227. package/dist/PageHeading/PageHeading.test.js +0 -40
  228. package/dist/Pagination/Pagination.test.d.ts +0 -5
  229. package/dist/Pagination/Pagination.test.js +0 -137
  230. package/dist/Paragraph/Paragraph.test.d.ts +0 -5
  231. package/dist/Paragraph/Paragraph.test.js +0 -62
  232. package/dist/PasswordInput/PasswordInput.test.d.ts +0 -5
  233. package/dist/PasswordInput/PasswordInput.test.js +0 -89
  234. package/dist/Radio/Radio.test.d.ts +0 -5
  235. package/dist/Radio/Radio.test.js +0 -134
  236. package/dist/Row/Row.test.d.ts +0 -5
  237. package/dist/Row/Row.test.js +0 -64
  238. package/dist/SearchField/SearchField.test.d.ts +0 -5
  239. package/dist/SearchField/SearchField.test.js +0 -50
  240. package/dist/SearchField/SearchFieldInput.test.d.ts +0 -5
  241. package/dist/SearchField/SearchFieldInput.test.js +0 -65
  242. package/dist/Select/Select.test.d.ts +0 -5
  243. package/dist/Select/Select.test.js +0 -74
  244. package/dist/Select/SelectOption.test.d.ts +0 -5
  245. package/dist/Select/SelectOption.test.js +0 -45
  246. package/dist/Select/SelectOptionGroup.test.d.ts +0 -5
  247. package/dist/Select/SelectOptionGroup.test.js +0 -45
  248. package/dist/SkipLink/SkipLink.test.d.ts +0 -5
  249. package/dist/SkipLink/SkipLink.test.js +0 -33
  250. package/dist/Spotlight/Spotlight.test.d.ts +0 -5
  251. package/dist/Spotlight/Spotlight.test.js +0 -46
  252. package/dist/StandaloneLink/StandaloneLink.test.d.ts +0 -5
  253. package/dist/StandaloneLink/StandaloneLink.test.js +0 -46
  254. package/dist/Switch/Switch.test.d.ts +0 -5
  255. package/dist/Switch/Switch.test.js +0 -69
  256. package/dist/Table/Table.test.d.ts +0 -5
  257. package/dist/Table/Table.test.js +0 -33
  258. package/dist/Table/TableBody.test.d.ts +0 -5
  259. package/dist/Table/TableBody.test.js +0 -34
  260. package/dist/Table/TableCaption.test.d.ts +0 -5
  261. package/dist/Table/TableCaption.test.js +0 -45
  262. package/dist/Table/TableCell.test.d.ts +0 -5
  263. package/dist/Table/TableCell.test.js +0 -36
  264. package/dist/Table/TableFooter.test.d.ts +0 -5
  265. package/dist/Table/TableFooter.test.js +0 -34
  266. package/dist/Table/TableHeader.test.d.ts +0 -5
  267. package/dist/Table/TableHeader.test.js +0 -34
  268. package/dist/Table/TableHeaderCell.test.d.ts +0 -5
  269. package/dist/Table/TableHeaderCell.test.js +0 -42
  270. package/dist/Table/TableRow.test.d.ts +0 -5
  271. package/dist/Table/TableRow.test.js +0 -35
  272. package/dist/TableOfContents/TableOfContents.test.d.ts +0 -5
  273. package/dist/TableOfContents/TableOfContents.test.js +0 -44
  274. package/dist/TableOfContents/TableOfContentsLink.test.d.ts +0 -5
  275. package/dist/TableOfContents/TableOfContentsLink.test.js +0 -34
  276. package/dist/TableOfContents/TableOfContentsList.test.d.ts +0 -5
  277. package/dist/TableOfContents/TableOfContentsList.test.js +0 -40
  278. package/dist/Tabs/Tabs.test.d.ts +0 -5
  279. package/dist/Tabs/Tabs.test.js +0 -104
  280. package/dist/Tabs/TabsButton.test.d.ts +0 -5
  281. package/dist/Tabs/TabsButton.test.js +0 -57
  282. package/dist/Tabs/TabsList.test.d.ts +0 -5
  283. package/dist/Tabs/TabsList.test.js +0 -32
  284. package/dist/Tabs/TabsPanel.test.d.ts +0 -5
  285. package/dist/Tabs/TabsPanel.test.js +0 -42
  286. package/dist/TextArea/TextArea.test.d.ts +0 -5
  287. package/dist/TextArea/TextArea.test.js +0 -105
  288. package/dist/TextInput/TextInput.test.d.ts +0 -5
  289. package/dist/TextInput/TextInput.test.js +0 -92
  290. package/dist/TimeInput/TimeInput.test.d.ts +0 -5
  291. package/dist/TimeInput/TimeInput.test.js +0 -51
  292. package/dist/UnorderedList/UnorderedList.test.d.ts +0 -5
  293. package/dist/UnorderedList/UnorderedList.test.js +0 -55
  294. package/dist/UnorderedList/UnorderedListItem.test.d.ts +0 -5
  295. package/dist/UnorderedList/UnorderedListItem.test.js +0 -32
  296. package/dist/common/formatFileSize.test.d.ts +0 -5
  297. package/dist/common/formatFileSize.test.js +0 -22
  298. package/dist/common/formatFileType.test.d.ts +0 -5
  299. package/dist/common/formatFileType.test.js +0 -27
  300. package/dist/common/useKeyboardFocus.test.d.ts +0 -5
  301. package/dist/common/useKeyboardFocus.test.js +0 -79
  302. package/dist/tsconfig.tsbuildinfo +0 -1
@@ -1,22 +0,0 @@
1
- /**
2
- * @license EUPL-1.2+
3
- * Copyright Gemeente Amsterdam
4
- */
5
- import { formatFileSize } from './formatFileSize';
6
- describe('formatFileSize', () => {
7
- it('formats bytes correctly', () => {
8
- expect(formatFileSize(500)).toBe('500 bytes');
9
- });
10
- it('formats kilobytes correctly', () => {
11
- expect(formatFileSize(1024, 1)).toBe('1 kB');
12
- expect(formatFileSize(2048, 1)).toBe('2 kB');
13
- });
14
- it('formats megabytes correctly', () => {
15
- expect(formatFileSize(1048576, 1)).toBe('1 MB');
16
- expect(formatFileSize(2097152, 1)).toBe('2 MB');
17
- });
18
- it('formats gigabytes correctly', () => {
19
- expect(formatFileSize(1073741824, 1)).toBe('1 GB');
20
- expect(formatFileSize(2147483648, 1)).toBe('2 GB');
21
- });
22
- });
@@ -1,5 +0,0 @@
1
- /**
2
- * @license EUPL-1.2+
3
- * Copyright Gemeente Amsterdam
4
- */
5
- export {};
@@ -1,27 +0,0 @@
1
- /**
2
- * @license EUPL-1.2+
3
- * Copyright Gemeente Amsterdam
4
- */
5
- import { formatFileType } from './formatFileType';
6
- describe('formatFileType', () => {
7
- it('formats image types correctly', () => {
8
- expect(formatFileType('image/gif')).toBe('gif');
9
- expect(formatFileType('image/jpeg')).toBe('jpg');
10
- expect(formatFileType('image/png')).toBe('png');
11
- });
12
- it('formats text types correctly', () => {
13
- expect(formatFileType('text/plain')).toBe('txt');
14
- });
15
- it('formats application types correctly', () => {
16
- expect(formatFileType('application/pdf')).toBe('pdf');
17
- expect(formatFileType('application/msword')).toBe('Word');
18
- expect(formatFileType('application/vnd.openxmlformats-officedocument.wordprocessingml.document')).toBe('Word');
19
- expect(formatFileType('application/vnd.ms-excel')).toBe('Excel');
20
- expect(formatFileType('application/vnd.openxmlformats-officedocument.spreadsheetml.sheet')).toBe('Excel');
21
- expect(formatFileType('application/vnd.ms-powerpoint')).toBe('PowerPoint');
22
- expect(formatFileType('application/vnd.openxmlformats-officedocument.presentationml.presentation')).toBe('PowerPoint');
23
- });
24
- it('returns the original file type for unknown types', () => {
25
- expect(formatFileType('unknown/type')).toBe('Document');
26
- });
27
- });
@@ -1,5 +0,0 @@
1
- /**
2
- * @license EUPL-1.2+
3
- * Copyright Gemeente Amsterdam
4
- */
5
- export {};
@@ -1,79 +0,0 @@
1
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- /**
3
- * @license EUPL-1.2+
4
- * Copyright Gemeente Amsterdam
5
- */
6
- import { fireEvent, render } from '@testing-library/react';
7
- import { useRef } from 'react';
8
- import { KeyboardKeys, useKeyboardFocus } from './useKeyboardFocus';
9
- describe('use focus with arrows', () => {
10
- const onFocusOneMock = jest.fn();
11
- const onFocusTwoMock = jest.fn();
12
- const onFocusThreeMock = jest.fn();
13
- const Component = ({ rotate = undefined }) => {
14
- const ref = useRef(null);
15
- const { keyDown } = useKeyboardFocus(ref, {
16
- rotating: rotate,
17
- });
18
- return (_jsxs("div", { onKeyDown: keyDown, ref: ref, role: "menu", tabIndex: 0, children: [_jsx("button", { onFocus: onFocusOneMock, type: "button", children: "One" }), _jsx("button", { onFocus: onFocusTwoMock, type: "button", children: "Two" }), _jsx("button", { onFocus: onFocusThreeMock, type: "button", children: "Three" })] }));
19
- };
20
- afterEach(() => {
21
- onFocusOneMock.mockReset();
22
- onFocusTwoMock.mockReset();
23
- onFocusThreeMock.mockReset();
24
- });
25
- it('sets focus when using arrow keys', () => {
26
- const { container } = render(_jsx(Component, {}));
27
- const firstChild = container.firstChild;
28
- expect(onFocusOneMock).not.toHaveBeenCalled();
29
- // 4 times, so we can check if there are no other elements focused after reaching the last one
30
- Array.from(Array(4).keys()).forEach(() => {
31
- fireEvent.keyDown(firstChild, {
32
- key: KeyboardKeys.ArrowDown,
33
- });
34
- });
35
- expect(onFocusOneMock).toHaveBeenCalledTimes(1);
36
- expect(onFocusTwoMock).toHaveBeenCalledTimes(1);
37
- expect(onFocusThreeMock).toHaveBeenCalledTimes(1);
38
- // Same here
39
- Array.from(Array(4).keys()).forEach(() => {
40
- fireEvent.keyDown(firstChild, {
41
- key: KeyboardKeys.ArrowUp,
42
- });
43
- });
44
- expect(onFocusTwoMock).toHaveBeenCalledTimes(2);
45
- expect(onFocusOneMock).toHaveBeenCalledTimes(2);
46
- });
47
- it('rotates focused elements', () => {
48
- const { container } = render(_jsx(Component, { rotate: true }));
49
- const firstChild = container.firstChild;
50
- Array.from(Array(9).keys()).forEach(() => {
51
- fireEvent.keyDown(firstChild, {
52
- key: KeyboardKeys.ArrowDown,
53
- });
54
- });
55
- expect(onFocusOneMock).toHaveBeenCalledTimes(3);
56
- Array.from(Array(9).keys()).forEach(() => {
57
- fireEvent.keyDown(firstChild, {
58
- key: KeyboardKeys.ArrowUp,
59
- });
60
- });
61
- expect(onFocusOneMock).toHaveBeenCalledTimes(6);
62
- });
63
- it('sets focus to first element when using "Home" key', () => {
64
- const { container } = render(_jsx(Component, {}));
65
- const firstChild = container.firstChild;
66
- fireEvent.keyDown(firstChild, {
67
- key: KeyboardKeys.Home,
68
- });
69
- expect(onFocusOneMock).toHaveBeenCalledTimes(1);
70
- });
71
- it('sets focus to last element when using "End" key', () => {
72
- const { container } = render(_jsx(Component, {}));
73
- const firstChild = container.firstChild;
74
- fireEvent.keyDown(firstChild, {
75
- key: KeyboardKeys.End,
76
- });
77
- expect(onFocusThreeMock).toHaveBeenCalledTimes(1);
78
- });
79
- });