@amsterdam/design-system-react 2.1.0 → 3.0.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 (279) hide show
  1. package/README.md +1 -1
  2. package/dist/Avatar/Avatar.d.ts +2 -2
  3. package/dist/Card/Card.d.ts +1 -1
  4. package/dist/Card/CardHeading.d.ts +1 -1
  5. package/dist/Checkbox/Checkbox.d.ts +1 -1
  6. package/dist/Column/Column.d.ts +1 -1
  7. package/dist/DateInput/DateInput.d.ts +1 -1
  8. package/dist/FieldSet/FieldSet.d.ts +11 -0
  9. package/dist/FieldSet/FieldSet.js +3 -3
  10. package/dist/Grid/Grid.d.ts +1 -1
  11. package/dist/Grid/GridCell.d.ts +1 -1
  12. package/dist/Hint/Hint.d.ts +1 -0
  13. package/dist/Hint/Hint.js +2 -2
  14. package/dist/Image/Image.js +1 -1
  15. package/dist/Label/Label.d.ts +11 -0
  16. package/dist/Label/Label.js +2 -2
  17. package/dist/LinkList/LinkList.d.ts +1 -1
  18. package/dist/Logo/Logo.d.ts +10 -5
  19. package/dist/Logo/Logo.js +17 -9
  20. package/dist/Menu/MenuLink.d.ts +2 -2
  21. package/dist/Page/Page.d.ts +6 -2
  22. package/dist/Page/Page.js +1 -1
  23. package/dist/PageFooter/PageFooter.d.ts +4 -1
  24. package/dist/PageFooter/PageFooterMenu.d.ts +27 -2
  25. package/dist/PageFooter/PageFooterMenu.js +6 -2
  26. package/dist/PageHeader/PageHeader.d.ts +14 -4
  27. package/dist/PageHeader/PageHeader.js +3 -2
  28. package/dist/PageHeader/PageHeaderGridCellNarrowWindowOnly.js +2 -1
  29. package/dist/PageHeader/PageHeaderMenuIcon.js +1 -1
  30. package/dist/PageHeader/PageHeaderMenuLink.d.ts +7 -0
  31. package/dist/PageHeader/PageHeaderMenuLink.js +3 -2
  32. package/dist/Paragraph/Paragraph.d.ts +2 -2
  33. package/dist/Paragraph/Paragraph.js +8 -1
  34. package/dist/PasswordInput/PasswordInput.d.ts +1 -1
  35. package/dist/Radio/Radio.d.ts +1 -1
  36. package/dist/Row/Row.d.ts +1 -1
  37. package/dist/SearchField/SearchField.d.ts +1 -1
  38. package/dist/Spotlight/Spotlight.d.ts +1 -1
  39. package/dist/TimeInput/TimeInput.d.ts +1 -1
  40. package/dist/common/useIsAfterBreakpoint.d.ts +4 -4
  41. package/dist/common/useIsAfterBreakpoint.js +12 -13
  42. package/dist/index.cjs.js +95 -62
  43. package/dist/index.cjs.js.map +1 -1
  44. package/dist/index.d.ts +1958 -61
  45. package/dist/index.esm.js +96 -63
  46. package/dist/index.esm.js.map +1 -1
  47. package/dist/tsconfig.build.tsbuildinfo +1 -1
  48. package/package.json +11 -16
  49. package/dist/Accordion/Accordion.test.d.ts +0 -5
  50. package/dist/Accordion/Accordion.test.js +0 -44
  51. package/dist/Accordion/AccordionSection.test.d.ts +0 -5
  52. package/dist/Accordion/AccordionSection.test.js +0 -100
  53. package/dist/ActionGroup/ActionGroup.test.d.ts +0 -5
  54. package/dist/ActionGroup/ActionGroup.test.js +0 -33
  55. package/dist/Alert/Alert.test.d.ts +0 -5
  56. package/dist/Alert/Alert.test.js +0 -74
  57. package/dist/App/App.d.ts +0 -12
  58. package/dist/App/App.js +0 -8
  59. package/dist/App/App.test.d.ts +0 -5
  60. package/dist/App/App.test.js +0 -33
  61. package/dist/App/index.d.ts +0 -6
  62. package/dist/App/index.js +0 -5
  63. package/dist/AppNavigation/AppNavigation.d.ts +0 -45
  64. package/dist/AppNavigation/AppNavigation.js +0 -18
  65. package/dist/AppNavigation/AppNavigation.test.d.ts +0 -5
  66. package/dist/AppNavigation/AppNavigation.test.js +0 -33
  67. package/dist/AppNavigation/AppNavigationButton.d.ts +0 -18
  68. package/dist/AppNavigation/AppNavigationButton.js +0 -17
  69. package/dist/AppNavigation/AppNavigationLink.d.ts +0 -19
  70. package/dist/AppNavigation/AppNavigationLink.js +0 -19
  71. package/dist/AppNavigation/AppNavigationMenu.d.ts +0 -9
  72. package/dist/AppNavigation/AppNavigationMenu.js +0 -5
  73. package/dist/AppNavigation/index.d.ts +0 -6
  74. package/dist/AppNavigation/index.js +0 -5
  75. package/dist/Avatar/Avatar.test.d.ts +0 -5
  76. package/dist/Avatar/Avatar.test.js +0 -63
  77. package/dist/Badge/Badge.test.d.ts +0 -5
  78. package/dist/Badge/Badge.test.js +0 -43
  79. package/dist/Blockquote/Blockquote.test.d.ts +0 -5
  80. package/dist/Blockquote/Blockquote.test.js +0 -46
  81. package/dist/Breadcrumb/Breadcrumb.test.d.ts +0 -5
  82. package/dist/Breadcrumb/Breadcrumb.test.js +0 -45
  83. package/dist/Breadcrumb/BreadcrumbLink.test.d.ts +0 -5
  84. package/dist/Breadcrumb/BreadcrumbLink.test.js +0 -40
  85. package/dist/Breakout/Breakout.test.d.ts +0 -5
  86. package/dist/Breakout/Breakout.test.js +0 -62
  87. package/dist/Breakout/BreakoutCell.test.d.ts +0 -5
  88. package/dist/Breakout/BreakoutCell.test.js +0 -128
  89. package/dist/Button/Button.test.d.ts +0 -5
  90. package/dist/Button/Button.test.js +0 -114
  91. package/dist/CallToActionLink/CallToActionLink.test.d.ts +0 -5
  92. package/dist/CallToActionLink/CallToActionLink.test.js +0 -33
  93. package/dist/Card/Card.test.d.ts +0 -5
  94. package/dist/Card/Card.test.js +0 -33
  95. package/dist/Card/CardHeading.test.d.ts +0 -5
  96. package/dist/Card/CardHeading.test.js +0 -38
  97. package/dist/Card/CardHeadingGroup.test.d.ts +0 -5
  98. package/dist/Card/CardHeadingGroup.test.js +0 -38
  99. package/dist/Card/CardImage.test.d.ts +0 -5
  100. package/dist/Card/CardImage.test.js +0 -33
  101. package/dist/Card/CardLink.test.d.ts +0 -5
  102. package/dist/Card/CardLink.test.js +0 -33
  103. package/dist/CharacterCount/CharacterCount.test.d.ts +0 -5
  104. package/dist/CharacterCount/CharacterCount.test.js +0 -38
  105. package/dist/Checkbox/Checkbox.test.d.ts +0 -5
  106. package/dist/Checkbox/Checkbox.test.js +0 -142
  107. package/dist/Column/Column.test.d.ts +0 -5
  108. package/dist/Column/Column.test.js +0 -59
  109. package/dist/DateInput/DateInput.test.d.ts +0 -5
  110. package/dist/DateInput/DateInput.test.js +0 -58
  111. package/dist/DescriptionList/DescriptionList.test.d.ts +0 -5
  112. package/dist/DescriptionList/DescriptionList.test.js +0 -43
  113. package/dist/DescriptionList/DescriptionListDescription.test.d.ts +0 -5
  114. package/dist/DescriptionList/DescriptionListDescription.test.js +0 -33
  115. package/dist/DescriptionList/DescriptionListSection.test.d.ts +0 -5
  116. package/dist/DescriptionList/DescriptionListSection.test.js +0 -33
  117. package/dist/DescriptionList/DescriptionListTerm.test.d.ts +0 -5
  118. package/dist/DescriptionList/DescriptionListTerm.test.js +0 -33
  119. package/dist/Dialog/Dialog.test.d.ts +0 -5
  120. package/dist/Dialog/Dialog.test.js +0 -82
  121. package/dist/ErrorMessage/ErrorMessage.test.d.ts +0 -5
  122. package/dist/ErrorMessage/ErrorMessage.test.js +0 -53
  123. package/dist/Field/Field.test.d.ts +0 -5
  124. package/dist/Field/Field.test.js +0 -38
  125. package/dist/FieldSet/FieldSet.test.d.ts +0 -5
  126. package/dist/FieldSet/FieldSet.test.js +0 -70
  127. package/dist/Figure/Figure.test.d.ts +0 -5
  128. package/dist/Figure/Figure.test.js +0 -33
  129. package/dist/Figure/FigureCaption.test.d.ts +0 -5
  130. package/dist/Figure/FigureCaption.test.js +0 -38
  131. package/dist/FileInput/FileInput.test.d.ts +0 -5
  132. package/dist/FileInput/FileInput.test.js +0 -33
  133. package/dist/FileList/FileList.test.d.ts +0 -5
  134. package/dist/FileList/FileList.test.js +0 -33
  135. package/dist/FileList/FileListItem.test.d.ts +0 -5
  136. package/dist/FileList/FileListItem.test.js +0 -44
  137. package/dist/Grid/Grid.test.d.ts +0 -5
  138. package/dist/Grid/Grid.test.js +0 -69
  139. package/dist/Grid/GridCell.test.d.ts +0 -5
  140. package/dist/Grid/GridCell.test.js +0 -84
  141. package/dist/Heading/Heading.test.d.ts +0 -5
  142. package/dist/Heading/Heading.test.js +0 -70
  143. package/dist/Hint/Hint.test.d.ts +0 -5
  144. package/dist/Hint/Hint.test.js +0 -53
  145. package/dist/Icon/Icon.test.d.ts +0 -5
  146. package/dist/Icon/Icon.test.js +0 -60
  147. package/dist/IconButton/IconButton.test.d.ts +0 -5
  148. package/dist/IconButton/IconButton.test.js +0 -48
  149. package/dist/Image/Image.test.d.ts +0 -5
  150. package/dist/Image/Image.test.js +0 -43
  151. package/dist/ImageSlider/ImageSlider.test.d.ts +0 -5
  152. package/dist/ImageSlider/ImageSlider.test.js +0 -70
  153. package/dist/ImageSlider/ImageSliderControls.test.d.ts +0 -5
  154. package/dist/ImageSlider/ImageSliderControls.test.js +0 -25
  155. package/dist/ImageSlider/ImageSliderItem.test.d.ts +0 -5
  156. package/dist/ImageSlider/ImageSliderItem.test.js +0 -37
  157. package/dist/ImageSlider/ImageSliderScroller.test.d.ts +0 -5
  158. package/dist/ImageSlider/ImageSliderScroller.test.js +0 -37
  159. package/dist/ImageSlider/ImageSliderThumbnails.test.d.ts +0 -5
  160. package/dist/ImageSlider/ImageSliderThumbnails.test.js +0 -52
  161. package/dist/InvalidFormAlert/InvalidFormAlert.test.d.ts +0 -5
  162. package/dist/InvalidFormAlert/InvalidFormAlert.test.js +0 -108
  163. package/dist/Label/Label.test.d.ts +0 -5
  164. package/dist/Label/Label.test.js +0 -82
  165. package/dist/Link/Link.test.d.ts +0 -5
  166. package/dist/Link/Link.test.js +0 -43
  167. package/dist/LinkList/LinkList.test.d.ts +0 -5
  168. package/dist/LinkList/LinkList.test.js +0 -33
  169. package/dist/LinkList/LinkListLink.test.d.ts +0 -5
  170. package/dist/LinkList/LinkListLink.test.js +0 -54
  171. package/dist/Logo/Logo.test.d.ts +0 -5
  172. package/dist/Logo/Logo.test.js +0 -33
  173. package/dist/Mark/Mark.test.d.ts +0 -5
  174. package/dist/Mark/Mark.test.js +0 -33
  175. package/dist/Menu/Menu.test.d.ts +0 -5
  176. package/dist/Menu/Menu.test.js +0 -55
  177. package/dist/Menu/MenuLink.test.d.ts +0 -5
  178. package/dist/Menu/MenuLink.test.js +0 -56
  179. package/dist/OrderedList/OrderedList.test.d.ts +0 -5
  180. package/dist/OrderedList/OrderedList.test.js +0 -55
  181. package/dist/OrderedList/OrderedListItem.test.d.ts +0 -5
  182. package/dist/OrderedList/OrderedListItem.test.js +0 -32
  183. package/dist/Overlap/Overlap.test.d.ts +0 -5
  184. package/dist/Overlap/Overlap.test.js +0 -38
  185. package/dist/Page/Page.test.d.ts +0 -5
  186. package/dist/Page/Page.test.js +0 -33
  187. package/dist/PageFooter/PageFooter.test.d.ts +0 -5
  188. package/dist/PageFooter/PageFooter.test.js +0 -33
  189. package/dist/PageFooter/PageFooterMenu.test.d.ts +0 -5
  190. package/dist/PageFooter/PageFooterMenu.test.js +0 -35
  191. package/dist/PageFooter/PageFooterMenuLink.test.d.ts +0 -5
  192. package/dist/PageFooter/PageFooterMenuLink.test.js +0 -33
  193. package/dist/PageFooter/PageFooterSpotlight.test.d.ts +0 -5
  194. package/dist/PageFooter/PageFooterSpotlight.test.js +0 -33
  195. package/dist/PageHeader/PageHeader.test.d.ts +0 -6
  196. package/dist/PageHeader/PageHeader.test.js +0 -131
  197. package/dist/PageHeader/PageHeaderGridCellNarrowWindowOnly.test.d.ts +0 -5
  198. package/dist/PageHeader/PageHeaderGridCellNarrowWindowOnly.test.js +0 -38
  199. package/dist/PageHeader/PageHeaderMenuLink.test.d.ts +0 -5
  200. package/dist/PageHeader/PageHeaderMenuLink.test.js +0 -45
  201. package/dist/PageHeading/PageHeading.test.d.ts +0 -5
  202. package/dist/PageHeading/PageHeading.test.js +0 -40
  203. package/dist/Pagination/Pagination.test.d.ts +0 -5
  204. package/dist/Pagination/Pagination.test.js +0 -137
  205. package/dist/Paragraph/Paragraph.test.d.ts +0 -5
  206. package/dist/Paragraph/Paragraph.test.js +0 -62
  207. package/dist/PasswordInput/PasswordInput.test.d.ts +0 -5
  208. package/dist/PasswordInput/PasswordInput.test.js +0 -89
  209. package/dist/Radio/Radio.test.d.ts +0 -5
  210. package/dist/Radio/Radio.test.js +0 -134
  211. package/dist/Row/Row.test.d.ts +0 -5
  212. package/dist/Row/Row.test.js +0 -64
  213. package/dist/SearchField/SearchField.test.d.ts +0 -5
  214. package/dist/SearchField/SearchField.test.js +0 -33
  215. package/dist/SearchField/SearchFieldButton.test.d.ts +0 -5
  216. package/dist/SearchField/SearchFieldButton.test.js +0 -47
  217. package/dist/SearchField/SearchFieldInput.test.d.ts +0 -5
  218. package/dist/SearchField/SearchFieldInput.test.js +0 -65
  219. package/dist/Select/Select.test.d.ts +0 -5
  220. package/dist/Select/Select.test.js +0 -74
  221. package/dist/Select/SelectOption.test.d.ts +0 -5
  222. package/dist/Select/SelectOption.test.js +0 -45
  223. package/dist/Select/SelectOptionGroup.test.d.ts +0 -5
  224. package/dist/Select/SelectOptionGroup.test.js +0 -45
  225. package/dist/SkipLink/SkipLink.test.d.ts +0 -5
  226. package/dist/SkipLink/SkipLink.test.js +0 -33
  227. package/dist/Spotlight/Spotlight.test.d.ts +0 -5
  228. package/dist/Spotlight/Spotlight.test.js +0 -46
  229. package/dist/StandaloneLink/StandaloneLink.test.d.ts +0 -5
  230. package/dist/StandaloneLink/StandaloneLink.test.js +0 -46
  231. package/dist/Switch/Switch.test.d.ts +0 -5
  232. package/dist/Switch/Switch.test.js +0 -69
  233. package/dist/Table/Table.test.d.ts +0 -5
  234. package/dist/Table/Table.test.js +0 -33
  235. package/dist/Table/TableBody.test.d.ts +0 -5
  236. package/dist/Table/TableBody.test.js +0 -34
  237. package/dist/Table/TableCaption.test.d.ts +0 -5
  238. package/dist/Table/TableCaption.test.js +0 -45
  239. package/dist/Table/TableCell.test.d.ts +0 -5
  240. package/dist/Table/TableCell.test.js +0 -36
  241. package/dist/Table/TableFooter.test.d.ts +0 -5
  242. package/dist/Table/TableFooter.test.js +0 -34
  243. package/dist/Table/TableHeader.test.d.ts +0 -5
  244. package/dist/Table/TableHeader.test.js +0 -34
  245. package/dist/Table/TableHeaderCell.test.d.ts +0 -5
  246. package/dist/Table/TableHeaderCell.test.js +0 -42
  247. package/dist/Table/TableRow.test.d.ts +0 -5
  248. package/dist/Table/TableRow.test.js +0 -35
  249. package/dist/TableOfContents/TableOfContents.test.d.ts +0 -5
  250. package/dist/TableOfContents/TableOfContents.test.js +0 -44
  251. package/dist/TableOfContents/TableOfContentsLink.test.d.ts +0 -5
  252. package/dist/TableOfContents/TableOfContentsLink.test.js +0 -34
  253. package/dist/TableOfContents/TableOfContentsList.test.d.ts +0 -5
  254. package/dist/TableOfContents/TableOfContentsList.test.js +0 -40
  255. package/dist/Tabs/Tabs.test.d.ts +0 -5
  256. package/dist/Tabs/Tabs.test.js +0 -104
  257. package/dist/Tabs/TabsButton.test.d.ts +0 -5
  258. package/dist/Tabs/TabsButton.test.js +0 -57
  259. package/dist/Tabs/TabsList.test.d.ts +0 -5
  260. package/dist/Tabs/TabsList.test.js +0 -32
  261. package/dist/Tabs/TabsPanel.test.d.ts +0 -5
  262. package/dist/Tabs/TabsPanel.test.js +0 -42
  263. package/dist/TextArea/TextArea.test.d.ts +0 -5
  264. package/dist/TextArea/TextArea.test.js +0 -105
  265. package/dist/TextInput/TextInput.test.d.ts +0 -5
  266. package/dist/TextInput/TextInput.test.js +0 -92
  267. package/dist/TimeInput/TimeInput.test.d.ts +0 -5
  268. package/dist/TimeInput/TimeInput.test.js +0 -51
  269. package/dist/UnorderedList/UnorderedList.test.d.ts +0 -5
  270. package/dist/UnorderedList/UnorderedList.test.js +0 -55
  271. package/dist/UnorderedList/UnorderedListItem.test.d.ts +0 -5
  272. package/dist/UnorderedList/UnorderedListItem.test.js +0 -32
  273. package/dist/common/formatFileSize.test.d.ts +0 -5
  274. package/dist/common/formatFileSize.test.js +0 -22
  275. package/dist/common/formatFileType.test.d.ts +0 -5
  276. package/dist/common/formatFileType.test.js +0 -27
  277. package/dist/common/useKeyboardFocus.test.d.ts +0 -5
  278. package/dist/common/useKeyboardFocus.test.js +0 -79
  279. package/dist/tsconfig.tsbuildinfo +0 -1
@@ -1,105 +0,0 @@
1
- import { jsx as _jsx } from "react/jsx-runtime";
2
- /**
3
- * @license EUPL-1.2+
4
- * Copyright Gemeente Amsterdam
5
- */
6
- import { render, screen } from '@testing-library/react';
7
- import userEvent from '@testing-library/user-event';
8
- import { createRef, useState } from 'react';
9
- import { TextArea } from './TextArea';
10
- import '@testing-library/jest-dom';
11
- describe('Text area', () => {
12
- it('renders', () => {
13
- render(_jsx(TextArea, {}));
14
- const component = screen.getByRole('textbox');
15
- expect(component).toBeInTheDocument();
16
- expect(component).toBeVisible();
17
- });
18
- it('renders a design system BEM class name', () => {
19
- render(_jsx(TextArea, {}));
20
- const component = screen.getByRole('textbox');
21
- expect(component).toHaveClass('ams-text-area');
22
- });
23
- it('renders an extra class name', () => {
24
- render(_jsx(TextArea, { className: "extra" }));
25
- const component = screen.getByRole('textbox');
26
- expect(component).toHaveClass('ams-text-area extra');
27
- });
28
- it('renders a textarea with horizontal resize', () => {
29
- render(_jsx(TextArea, { resize: "horizontal" }));
30
- const component = screen.getByRole('textbox');
31
- expect(component).toHaveClass('ams-text-area ams-text-area--resize-horizontal');
32
- });
33
- it('renders a textarea with vertical resize', () => {
34
- render(_jsx(TextArea, { resize: "vertical" }));
35
- const component = screen.getByRole('textbox');
36
- expect(component).toHaveClass('ams-text-area ams-text-area--resize-vertical');
37
- });
38
- it('renders a textarea with no resize', () => {
39
- render(_jsx(TextArea, { resize: "none" }));
40
- const component = screen.getByRole('textbox');
41
- expect(component).toHaveClass('ams-text-area ams-text-area--resize-none');
42
- });
43
- it('renders a textarea with cols class when cols prop is provided', () => {
44
- render(_jsx(TextArea, { cols: 10 }));
45
- const component = screen.getByRole('textbox');
46
- expect(component).toHaveClass('ams-text-area ams-text-area--cols');
47
- });
48
- it('can be controlled', async () => {
49
- function ControlledComponent() {
50
- const [value, setValue] = useState('Hello');
51
- return _jsx(TextArea, { onChange: (e) => setValue(e.target.value), value: value });
52
- }
53
- render(_jsx(ControlledComponent, {}));
54
- const componentText = screen.getByDisplayValue('Hello');
55
- expect(componentText).toBeInTheDocument();
56
- const component = screen.getByRole('textbox');
57
- if (component) {
58
- await userEvent.type(component, ', World!');
59
- }
60
- const newComponentText = screen.getByDisplayValue('Hello, World!');
61
- expect(newComponentText).toBeInTheDocument();
62
- });
63
- it('should not update the value when disabled', async () => {
64
- render(_jsx(TextArea, { defaultValue: "Hello", disabled: true }));
65
- const component = screen.getByRole('textbox');
66
- if (component) {
67
- await userEvent.type(component, ', World!');
68
- }
69
- expect(component).toHaveValue('Hello');
70
- });
71
- it('supports ForwardRef in React', () => {
72
- const ref = createRef();
73
- render(_jsx(TextArea, { ref: ref }));
74
- const component = screen.getByRole('textbox');
75
- expect(ref.current).toBe(component);
76
- });
77
- it('renders bidirectional by default using `dir="auto"`', () => {
78
- render(_jsx(TextArea, {}));
79
- const component = screen.getByRole('textbox');
80
- expect(component).toHaveAttribute('dir', 'auto');
81
- });
82
- it('renders left-to-right by using `dir="ltr"`', () => {
83
- render(_jsx(TextArea, { dir: "ltr" }));
84
- const component = screen.getByRole('textbox');
85
- expect(component).toHaveAttribute('dir', 'ltr');
86
- });
87
- describe('Invalid state', () => {
88
- it('is not invalid by default', () => {
89
- render(_jsx(TextArea, {}));
90
- const component = screen.getByRole('textbox');
91
- expect(component).not.toBeInvalid();
92
- });
93
- it('can have an invalid state', () => {
94
- render(_jsx(TextArea, { invalid: true }));
95
- const component = screen.getByRole('textbox');
96
- expect(component).toHaveAttribute('aria-invalid');
97
- expect(component).toBeInvalid();
98
- });
99
- it('omits non-essential invalid attributes when not invalid', () => {
100
- render(_jsx(TextArea, { invalid: false }));
101
- const component = screen.getByRole('textbox');
102
- expect(component).not.toHaveAttribute('aria-invalid');
103
- });
104
- });
105
- });
@@ -1,5 +0,0 @@
1
- /**
2
- * @license EUPL-1.2+
3
- * Copyright Gemeente Amsterdam
4
- */
5
- import '@testing-library/jest-dom';
@@ -1,92 +0,0 @@
1
- import { jsx as _jsx } from "react/jsx-runtime";
2
- /**
3
- * @license EUPL-1.2+
4
- * Copyright Gemeente Amsterdam
5
- */
6
- import { render, screen } from '@testing-library/react';
7
- import userEvent from '@testing-library/user-event';
8
- import { createRef, useState } from 'react';
9
- import { TextInput, textInputTypes } from './TextInput';
10
- import '@testing-library/jest-dom';
11
- describe('Text input', () => {
12
- it('renders', () => {
13
- render(_jsx(TextInput, {}));
14
- const component = screen.getByRole('textbox');
15
- expect(component).toBeInTheDocument();
16
- expect(component).toBeVisible();
17
- });
18
- it('renders a design system BEM class name', () => {
19
- render(_jsx(TextInput, {}));
20
- const component = screen.getByRole('textbox');
21
- expect(component).toHaveClass('ams-text-input');
22
- });
23
- it('renders an extra class name', () => {
24
- render(_jsx(TextInput, { className: "extra" }));
25
- const component = screen.getByRole('textbox');
26
- expect(component).toHaveClass('ams-text-input extra');
27
- });
28
- it('should be working in a controlled state', async () => {
29
- function ControlledComponent() {
30
- const [value, setValue] = useState('Hello');
31
- return _jsx(TextInput, { onChange: (e) => setValue(e.target.value), value: value });
32
- }
33
- render(_jsx(ControlledComponent, {}));
34
- const componentText = screen.getByDisplayValue('Hello');
35
- expect(componentText).toBeInTheDocument();
36
- const component = screen.getByRole('textbox');
37
- if (component) {
38
- await userEvent.type(component, ', World!');
39
- }
40
- const newComponentText = screen.getByDisplayValue('Hello, World!');
41
- expect(newComponentText).toBeInTheDocument();
42
- });
43
- it('should not update the value when disabled', async () => {
44
- render(_jsx(TextInput, { defaultValue: "Hello", disabled: true }));
45
- const component = screen.getByRole('textbox');
46
- if (component) {
47
- await userEvent.type(component, ', World!');
48
- }
49
- expect(component).toHaveValue('Hello');
50
- });
51
- it('supports ForwardRef in React', () => {
52
- const ref = createRef();
53
- render(_jsx(TextInput, { ref: ref }));
54
- const component = screen.getByRole('textbox');
55
- expect(ref.current).toBe(component);
56
- });
57
- it('renders bidirectional by default using `dir="auto"`', () => {
58
- render(_jsx(TextInput, {}));
59
- const component = screen.getByRole('textbox');
60
- expect(component).toHaveAttribute('dir', 'auto');
61
- });
62
- it('renders left-to-right by using `dir="ltr"`', () => {
63
- render(_jsx(TextInput, { dir: "ltr" }));
64
- const component = screen.getByRole('textbox');
65
- expect(component).toHaveAttribute('dir', 'ltr');
66
- });
67
- describe('Invalid state', () => {
68
- it('is not invalid by default', () => {
69
- render(_jsx(TextInput, {}));
70
- const component = screen.getByRole('textbox');
71
- expect(component).not.toBeInvalid();
72
- });
73
- it('can have an invalid state', () => {
74
- render(_jsx(TextInput, { invalid: true }));
75
- const component = screen.getByRole('textbox');
76
- expect(component).toHaveAttribute('aria-invalid');
77
- expect(component).toBeInvalid();
78
- });
79
- it('omits non-essential invalid attributes when not invalid', () => {
80
- render(_jsx(TextInput, { invalid: false }));
81
- const component = screen.getByRole('textbox');
82
- expect(component).not.toHaveAttribute('aria-invalid');
83
- });
84
- });
85
- describe('Type', () => {
86
- textInputTypes.map((type) => it(`sets the ‘${type}’ type`, () => {
87
- render(_jsx(TextInput, { type: type }));
88
- const component = screen.getByRole('textbox');
89
- expect(component).toHaveAttribute('type', type);
90
- }));
91
- });
92
- });
@@ -1,5 +0,0 @@
1
- /**
2
- * @license EUPL-1.2+
3
- * Copyright Gemeente Amsterdam
4
- */
5
- import '@testing-library/jest-dom';
@@ -1,51 +0,0 @@
1
- import { jsx as _jsx } from "react/jsx-runtime";
2
- /**
3
- * @license EUPL-1.2+
4
- * Copyright Gemeente Amsterdam
5
- */
6
- import { render } from '@testing-library/react';
7
- import { createRef } from 'react';
8
- import { TimeInput } from './TimeInput';
9
- import '@testing-library/jest-dom';
10
- describe('Time input', () => {
11
- it('renders', () => {
12
- const { container } = render(_jsx(TimeInput, {}));
13
- const component = container.querySelector(':only-child');
14
- expect(component).toBeInTheDocument();
15
- expect(component).toBeVisible();
16
- });
17
- it('renders a design system BEM class name', () => {
18
- const { container } = render(_jsx(TimeInput, {}));
19
- const component = container.querySelector(':only-child');
20
- expect(component).toHaveClass('ams-time-input');
21
- });
22
- it('renders an extra class name', () => {
23
- const { container } = render(_jsx(TimeInput, { className: "extra" }));
24
- const component = container.querySelector(':only-child');
25
- expect(component).toHaveClass('ams-time-input extra');
26
- });
27
- it('supports ForwardRef in React', () => {
28
- const ref = createRef();
29
- const { container } = render(_jsx(TimeInput, { ref: ref }));
30
- const component = container.querySelector(':only-child');
31
- expect(ref.current).toBe(component);
32
- });
33
- describe('Invalid state', () => {
34
- it('is not invalid by default', () => {
35
- const { container } = render(_jsx(TimeInput, {}));
36
- const component = container.querySelector(':only-child');
37
- expect(component).not.toBeInvalid();
38
- });
39
- it('can have an invalid state', () => {
40
- const { container } = render(_jsx(TimeInput, { invalid: true }));
41
- const component = container.querySelector(':only-child');
42
- expect(component).toHaveAttribute('aria-invalid');
43
- expect(component).toBeInvalid();
44
- });
45
- it('omits non-essential invalid attributes when not invalid', () => {
46
- const { container } = render(_jsx(TimeInput, { invalid: false }));
47
- const component = container.querySelector(':only-child');
48
- expect(component).not.toHaveAttribute('aria-invalid');
49
- });
50
- });
51
- });
@@ -1,5 +0,0 @@
1
- /**
2
- * @license EUPL-1.2+
3
- * Copyright Gemeente Amsterdam
4
- */
5
- import '@testing-library/jest-dom';
@@ -1,55 +0,0 @@
1
- import { jsx as _jsx } from "react/jsx-runtime";
2
- /**
3
- * @license EUPL-1.2+
4
- * Copyright Gemeente Amsterdam
5
- */
6
- import { render, screen } from '@testing-library/react';
7
- import { createRef } from 'react';
8
- import { UnorderedList } from './UnorderedList';
9
- import '@testing-library/jest-dom';
10
- describe('Unordered list', () => {
11
- it('renders an HTML ul element', () => {
12
- const { container } = render(_jsx(UnorderedList, {}));
13
- const list = container.querySelector('ul:only-child');
14
- expect(list).toBeInTheDocument();
15
- });
16
- it('renders a design system BEM class name', () => {
17
- render(_jsx(UnorderedList, {}));
18
- const component = screen.getByRole('list');
19
- expect(component).toHaveClass('ams-unordered-list');
20
- });
21
- it('renders a no markers class', () => {
22
- render(_jsx(UnorderedList, { markers: false }));
23
- const component = screen.getByRole('list');
24
- expect(component).toHaveClass('ams-unordered-list--no-markers');
25
- });
26
- it('renders the class name for inverse color', () => {
27
- render(_jsx(UnorderedList, { color: "inverse" }));
28
- const component = screen.getByRole('list');
29
- expect(component).toHaveClass('ams-unordered-list--inverse');
30
- });
31
- it('renders an extra class name', () => {
32
- render(_jsx(UnorderedList, { className: "extra" }));
33
- const component = screen.getByRole('list');
34
- expect(component).toHaveClass('ams-unordered-list extra');
35
- });
36
- it('renders its subcomponent', () => {
37
- const listItems = ['Item 1', 'Item 2', 'Item 3'];
38
- const { container } = render(_jsx(UnorderedList, { children: listItems.map((item) => (_jsx(UnorderedList.Item, { children: item }, item))) }));
39
- const list = screen.getByRole('list');
40
- const items = container.querySelectorAll('.ams-unordered-list__item');
41
- expect(list).toBeInTheDocument();
42
- expect(items.length).toBe(3);
43
- });
44
- it('renders the small size class', () => {
45
- render(_jsx(UnorderedList, { size: "small" }));
46
- const component = screen.getByRole('list');
47
- expect(component).toHaveClass('ams-unordered-list--small');
48
- });
49
- it('supports ForwardRef in React', () => {
50
- const ref = createRef();
51
- render(_jsx(UnorderedList, { ref: ref }));
52
- const component = screen.getByRole('list');
53
- expect(ref.current).toBe(component);
54
- });
55
- });
@@ -1,5 +0,0 @@
1
- /**
2
- * @license EUPL-1.2+
3
- * Copyright Gemeente Amsterdam
4
- */
5
- import '@testing-library/jest-dom';
@@ -1,32 +0,0 @@
1
- import { jsx as _jsx } from "react/jsx-runtime";
2
- /**
3
- * @license EUPL-1.2+
4
- * Copyright Gemeente Amsterdam
5
- */
6
- import { render, screen } from '@testing-library/react';
7
- import { createRef } from 'react';
8
- import { UnorderedListItem } from './UnorderedListItem';
9
- import '@testing-library/jest-dom';
10
- describe('Ordered list item', () => {
11
- it('renders', () => {
12
- render(_jsx(UnorderedListItem, {}));
13
- const component = screen.getByRole('listitem');
14
- expect(component).toBeInTheDocument();
15
- });
16
- it('renders a design system BEM class name', () => {
17
- render(_jsx(UnorderedListItem, {}));
18
- const component = screen.getByRole('listitem');
19
- expect(component).toHaveClass('ams-unordered-list__item');
20
- });
21
- it('renders an extra class name', () => {
22
- render(_jsx(UnorderedListItem, { className: "extra" }));
23
- const component = screen.getByRole('listitem');
24
- expect(component).toHaveClass('ams-unordered-list__item extra');
25
- });
26
- it('supports ForwardRef in React', () => {
27
- const ref = createRef();
28
- render(_jsx(UnorderedListItem, { ref: ref }));
29
- const component = screen.getByRole('listitem');
30
- expect(ref.current).toBe(component);
31
- });
32
- });
@@ -1,5 +0,0 @@
1
- /**
2
- * @license EUPL-1.2+
3
- * Copyright Gemeente Amsterdam
4
- */
5
- export {};
@@ -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
- });