@amsterdam/design-system-react 0.14.1 → 0.16.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 (591) hide show
  1. package/README.md +1 -1
  2. package/dist/Accordion/Accordion.d.ts +35 -0
  3. package/dist/Accordion/Accordion.js +22 -0
  4. package/dist/Accordion/Accordion.test.d.ts +1 -0
  5. package/dist/Accordion/Accordion.test.js +40 -0
  6. package/dist/Accordion/AccordionContext.d.ts +12 -0
  7. package/dist/Accordion/AccordionContext.js +11 -0
  8. package/dist/Accordion/AccordionSection.d.ts +19 -0
  9. package/dist/Accordion/AccordionSection.js +22 -0
  10. package/dist/Accordion/AccordionSection.test.d.ts +1 -0
  11. package/dist/Accordion/AccordionSection.test.js +83 -0
  12. package/dist/Accordion/index.d.ts +3 -0
  13. package/dist/Accordion/index.js +1 -0
  14. package/dist/ActionGroup/ActionGroup.d.ts +9 -0
  15. package/dist/ActionGroup/ActionGroup.js +9 -0
  16. package/dist/ActionGroup/ActionGroup.test.d.ts +1 -0
  17. package/dist/ActionGroup/ActionGroup.test.js +29 -0
  18. package/dist/ActionGroup/index.d.ts +2 -0
  19. package/dist/ActionGroup/index.js +1 -0
  20. package/dist/Alert/Alert.d.ts +46 -0
  21. package/dist/Alert/Alert.js +22 -0
  22. package/dist/Alert/Alert.test.d.ts +1 -0
  23. package/dist/Alert/Alert.test.js +59 -0
  24. package/dist/Alert/index.d.ts +2 -0
  25. package/dist/Alert/index.js +1 -0
  26. package/dist/Avatar/Avatar.d.ts +24 -0
  27. package/dist/Avatar/Avatar.js +25 -0
  28. package/dist/Avatar/Avatar.test.d.ts +1 -0
  29. package/dist/Avatar/Avatar.test.js +58 -0
  30. package/dist/Avatar/index.d.ts +2 -0
  31. package/dist/Avatar/index.js +1 -0
  32. package/dist/Badge/Badge.d.ts +20 -0
  33. package/dist/Badge/Badge.js +10 -0
  34. package/dist/Badge/Badge.test.d.ts +1 -0
  35. package/dist/Badge/Badge.test.js +39 -0
  36. package/dist/Badge/index.d.ts +2 -0
  37. package/dist/Badge/index.js +1 -0
  38. package/dist/Blockquote/Blockquote.d.ts +15 -0
  39. package/dist/Blockquote/Blockquote.js +9 -0
  40. package/dist/Blockquote/Blockquote.test.d.ts +1 -0
  41. package/dist/Blockquote/Blockquote.test.js +42 -0
  42. package/dist/Blockquote/index.d.ts +2 -0
  43. package/dist/Blockquote/index.js +1 -0
  44. package/dist/Breadcrumb/Breadcrumb.d.ts +11 -0
  45. package/dist/Breadcrumb/Breadcrumb.js +11 -0
  46. package/dist/Breadcrumb/Breadcrumb.test.d.ts +1 -0
  47. package/dist/Breadcrumb/Breadcrumb.test.js +41 -0
  48. package/dist/Breadcrumb/BreadcrumbLink.d.ts +7 -0
  49. package/dist/Breadcrumb/BreadcrumbLink.js +9 -0
  50. package/dist/Breadcrumb/BreadcrumbLink.test.d.ts +1 -0
  51. package/dist/Breadcrumb/BreadcrumbLink.test.js +36 -0
  52. package/dist/Breadcrumb/index.d.ts +3 -0
  53. package/dist/Breadcrumb/index.js +1 -0
  54. package/dist/Breakout/Breakout.d.ts +15 -0
  55. package/dist/Breakout/Breakout.js +12 -0
  56. package/dist/Breakout/Breakout.test.d.ts +1 -0
  57. package/dist/Breakout/Breakout.test.js +58 -0
  58. package/dist/Breakout/BreakoutCell.d.ts +37 -0
  59. package/dist/Breakout/BreakoutCell.js +11 -0
  60. package/dist/Breakout/BreakoutCell.test.d.ts +1 -0
  61. package/dist/Breakout/BreakoutCell.test.js +124 -0
  62. package/dist/Breakout/breakoutCellClasses.d.ts +6 -0
  63. package/dist/Breakout/breakoutCellClasses.js +11 -0
  64. package/dist/Breakout/index.d.ts +3 -0
  65. package/dist/Breakout/index.js +1 -0
  66. package/dist/Button/Button.d.ts +31 -0
  67. package/dist/Button/Button.js +10 -0
  68. package/dist/Button/Button.test.d.ts +1 -0
  69. package/dist/Button/Button.test.js +110 -0
  70. package/dist/Button/index.d.ts +2 -0
  71. package/dist/Button/index.js +1 -0
  72. package/dist/Card/Card.d.ts +28 -0
  73. package/dist/Card/Card.js +19 -0
  74. package/dist/Card/Card.test.d.ts +1 -0
  75. package/dist/Card/Card.test.js +29 -0
  76. package/dist/Card/CardHeading.d.ts +11 -0
  77. package/dist/Card/CardHeading.js +10 -0
  78. package/dist/Card/CardHeading.test.d.ts +1 -0
  79. package/dist/Card/CardHeading.test.js +34 -0
  80. package/dist/Card/CardHeadingGroup.d.ts +15 -0
  81. package/dist/Card/CardHeadingGroup.js +10 -0
  82. package/dist/Card/CardHeadingGroup.test.d.ts +1 -0
  83. package/dist/Card/CardHeadingGroup.test.js +34 -0
  84. package/dist/Card/CardImage.d.ts +7 -0
  85. package/dist/Card/CardImage.js +10 -0
  86. package/dist/Card/CardImage.test.d.ts +1 -0
  87. package/dist/Card/CardImage.test.js +29 -0
  88. package/dist/Card/CardLink.d.ts +9 -0
  89. package/dist/Card/CardLink.js +9 -0
  90. package/dist/Card/CardLink.test.d.ts +1 -0
  91. package/dist/Card/CardLink.test.js +29 -0
  92. package/dist/Card/index.d.ts +4 -0
  93. package/dist/Card/index.js +1 -0
  94. package/dist/CharacterCount/CharacterCount.d.ts +17 -0
  95. package/dist/CharacterCount/CharacterCount.js +9 -0
  96. package/dist/CharacterCount/CharacterCount.test.d.ts +1 -0
  97. package/dist/CharacterCount/CharacterCount.test.js +34 -0
  98. package/dist/CharacterCount/index.d.ts +2 -0
  99. package/dist/CharacterCount/index.js +1 -0
  100. package/dist/Checkbox/Checkbox.d.ts +19 -0
  101. package/dist/Checkbox/Checkbox.js +24 -0
  102. package/dist/Checkbox/Checkbox.test.d.ts +1 -0
  103. package/dist/Checkbox/Checkbox.test.js +123 -0
  104. package/dist/Checkbox/index.d.ts +2 -0
  105. package/dist/Checkbox/index.js +1 -0
  106. package/dist/Column/Column.d.ts +57 -0
  107. package/dist/Column/Column.js +11 -0
  108. package/dist/Column/Column.test.d.ts +1 -0
  109. package/dist/Column/Column.test.js +55 -0
  110. package/dist/Column/index.d.ts +2 -0
  111. package/dist/Column/index.js +1 -0
  112. package/dist/DateInput/DateInput.d.ts +20 -0
  113. package/dist/DateInput/DateInput.js +10 -0
  114. package/dist/DateInput/DateInput.test.d.ts +1 -0
  115. package/dist/DateInput/DateInput.test.js +54 -0
  116. package/dist/DateInput/index.d.ts +2 -0
  117. package/dist/DateInput/index.js +1 -0
  118. package/dist/DescriptionList/DescriptionList.d.ts +30 -0
  119. package/dist/DescriptionList/DescriptionList.js +18 -0
  120. package/dist/DescriptionList/DescriptionList.test.d.ts +1 -0
  121. package/dist/DescriptionList/DescriptionList.test.js +39 -0
  122. package/dist/DescriptionList/DescriptionListDescription.d.ts +9 -0
  123. package/dist/DescriptionList/DescriptionListDescription.js +9 -0
  124. package/dist/DescriptionList/DescriptionListDescription.test.d.ts +1 -0
  125. package/dist/DescriptionList/DescriptionListDescription.test.js +29 -0
  126. package/dist/DescriptionList/DescriptionListSection.d.ts +9 -0
  127. package/dist/DescriptionList/DescriptionListSection.js +9 -0
  128. package/dist/DescriptionList/DescriptionListSection.test.d.ts +1 -0
  129. package/dist/DescriptionList/DescriptionListSection.test.js +29 -0
  130. package/dist/DescriptionList/DescriptionListTerm.d.ts +9 -0
  131. package/dist/DescriptionList/DescriptionListTerm.js +9 -0
  132. package/dist/DescriptionList/DescriptionListTerm.test.d.ts +1 -0
  133. package/dist/DescriptionList/DescriptionListTerm.test.js +29 -0
  134. package/dist/DescriptionList/index.d.ts +4 -0
  135. package/dist/DescriptionList/index.js +1 -0
  136. package/dist/Dialog/Dialog.d.ts +27 -0
  137. package/dist/Dialog/Dialog.js +17 -0
  138. package/dist/Dialog/Dialog.test.d.ts +1 -0
  139. package/dist/Dialog/Dialog.test.js +78 -0
  140. package/dist/Dialog/index.d.ts +2 -0
  141. package/dist/Dialog/index.js +1 -0
  142. package/dist/ErrorMessage/ErrorMessage.d.ts +19 -0
  143. package/dist/ErrorMessage/ErrorMessage.js +11 -0
  144. package/dist/ErrorMessage/ErrorMessage.test.d.ts +1 -0
  145. package/dist/ErrorMessage/ErrorMessage.test.js +49 -0
  146. package/dist/ErrorMessage/index.d.ts +2 -0
  147. package/dist/ErrorMessage/index.js +1 -0
  148. package/dist/Field/Field.d.ts +15 -0
  149. package/dist/Field/Field.js +9 -0
  150. package/dist/Field/Field.test.d.ts +1 -0
  151. package/dist/Field/Field.test.js +34 -0
  152. package/dist/Field/index.d.ts +2 -0
  153. package/dist/Field/index.js +1 -0
  154. package/dist/FieldSet/FieldSet.d.ts +23 -0
  155. package/dist/FieldSet/FieldSet.js +12 -0
  156. package/dist/FieldSet/FieldSet.test.d.ts +1 -0
  157. package/dist/FieldSet/FieldSet.test.js +59 -0
  158. package/dist/FieldSet/index.d.ts +2 -0
  159. package/dist/FieldSet/index.js +1 -0
  160. package/dist/Figure/Figure.d.ts +15 -0
  161. package/dist/Figure/Figure.js +11 -0
  162. package/dist/Figure/Figure.test.d.ts +1 -0
  163. package/dist/Figure/Figure.test.js +29 -0
  164. package/dist/Figure/FigureCaption.d.ts +15 -0
  165. package/dist/Figure/FigureCaption.js +9 -0
  166. package/dist/Figure/FigureCaption.test.d.ts +1 -0
  167. package/dist/Figure/FigureCaption.test.js +34 -0
  168. package/dist/Figure/index.d.ts +2 -0
  169. package/dist/Figure/index.js +1 -0
  170. package/dist/FileInput/FileInput.d.ts +7 -0
  171. package/dist/FileInput/FileInput.js +9 -0
  172. package/dist/FileInput/FileInput.test.d.ts +1 -0
  173. package/dist/FileInput/FileInput.test.js +29 -0
  174. package/dist/FileInput/index.d.ts +2 -0
  175. package/dist/FileInput/index.js +1 -0
  176. package/dist/FileList/FileList.d.ts +17 -0
  177. package/dist/FileList/FileList.js +13 -0
  178. package/dist/FileList/FileList.test.d.ts +1 -0
  179. package/dist/FileList/FileList.test.js +29 -0
  180. package/dist/FileList/FileListItem.d.ts +13 -0
  181. package/dist/FileList/FileListItem.js +14 -0
  182. package/dist/FileList/FileListItem.test.d.ts +1 -0
  183. package/dist/FileList/FileListItem.test.js +40 -0
  184. package/dist/FileList/index.d.ts +2 -0
  185. package/dist/FileList/index.js +1 -0
  186. package/dist/Grid/Grid.d.ts +40 -0
  187. package/dist/Grid/Grid.js +15 -0
  188. package/dist/Grid/Grid.test.d.ts +1 -0
  189. package/dist/Grid/Grid.test.js +65 -0
  190. package/dist/Grid/GridCell.d.ts +25 -0
  191. package/dist/Grid/GridCell.js +11 -0
  192. package/dist/Grid/GridCell.test.d.ts +1 -0
  193. package/dist/Grid/GridCell.test.js +80 -0
  194. package/dist/Grid/gridCellClasses.d.ts +8 -0
  195. package/dist/Grid/gridCellClasses.js +18 -0
  196. package/dist/Grid/index.d.ts +3 -0
  197. package/dist/Grid/index.js +1 -0
  198. package/dist/Grid/paddingClasses.d.ts +2 -0
  199. package/dist/Grid/paddingClasses.js +13 -0
  200. package/dist/Heading/Heading.d.ts +24 -0
  201. package/dist/Heading/Heading.js +15 -0
  202. package/dist/Heading/Heading.test.d.ts +1 -0
  203. package/dist/Heading/Heading.test.js +68 -0
  204. package/dist/Heading/getHeadingTag.d.ts +2 -0
  205. package/dist/Heading/getHeadingTag.js +13 -0
  206. package/dist/Heading/index.d.ts +2 -0
  207. package/dist/Heading/index.js +1 -0
  208. package/dist/Hint/Hint.d.ts +16 -0
  209. package/dist/Hint/Hint.js +21 -0
  210. package/dist/Hint/Hint.test.d.ts +1 -0
  211. package/dist/Hint/Hint.test.js +49 -0
  212. package/dist/Hint/index.d.ts +2 -0
  213. package/dist/Hint/index.js +1 -0
  214. package/dist/Icon/Icon.d.ts +30 -0
  215. package/dist/Icon/Icon.js +12 -0
  216. package/dist/Icon/Icon.test.d.ts +1 -0
  217. package/dist/Icon/Icon.test.js +51 -0
  218. package/dist/Icon/index.d.ts +2 -0
  219. package/dist/Icon/index.js +1 -0
  220. package/dist/IconButton/IconButton.d.ts +26 -0
  221. package/dist/IconButton/IconButton.js +11 -0
  222. package/dist/IconButton/IconButton.test.d.ts +1 -0
  223. package/dist/IconButton/IconButton.test.js +44 -0
  224. package/dist/IconButton/index.d.ts +2 -0
  225. package/dist/IconButton/index.js +1 -0
  226. package/dist/Image/Image.d.ts +14 -0
  227. package/dist/Image/Image.js +10 -0
  228. package/dist/Image/Image.test.d.ts +1 -0
  229. package/dist/Image/Image.test.js +39 -0
  230. package/dist/Image/generateAspectRatioClass.d.ts +1 -0
  231. package/dist/Image/generateAspectRatioClass.js +1 -0
  232. package/dist/Image/index.d.ts +3 -0
  233. package/dist/Image/index.js +2 -0
  234. package/dist/ImageSlider/ImageSlider.d.ts +49 -0
  235. package/dist/ImageSlider/ImageSlider.js +98 -0
  236. package/dist/ImageSlider/ImageSlider.test.d.ts +1 -0
  237. package/dist/ImageSlider/ImageSlider.test.js +66 -0
  238. package/dist/ImageSlider/ImageSliderContext.d.ts +13 -0
  239. package/dist/ImageSlider/ImageSliderContext.js +14 -0
  240. package/dist/ImageSlider/ImageSliderControls.d.ts +17 -0
  241. package/dist/ImageSlider/ImageSliderControls.js +17 -0
  242. package/dist/ImageSlider/ImageSliderControls.test.d.ts +1 -0
  243. package/dist/ImageSlider/ImageSliderControls.test.js +21 -0
  244. package/dist/ImageSlider/ImageSliderItem.d.ts +15 -0
  245. package/dist/ImageSlider/ImageSliderItem.js +15 -0
  246. package/dist/ImageSlider/ImageSliderItem.test.d.ts +1 -0
  247. package/dist/ImageSlider/ImageSliderItem.test.js +33 -0
  248. package/dist/ImageSlider/ImageSliderScroller.d.ts +9 -0
  249. package/dist/ImageSlider/ImageSliderScroller.js +9 -0
  250. package/dist/ImageSlider/ImageSliderScroller.test.d.ts +1 -0
  251. package/dist/ImageSlider/ImageSliderScroller.test.js +33 -0
  252. package/dist/ImageSlider/ImageSliderThumbnails.d.ts +14 -0
  253. package/dist/ImageSlider/ImageSliderThumbnails.js +32 -0
  254. package/dist/ImageSlider/ImageSliderThumbnails.test.d.ts +1 -0
  255. package/dist/ImageSlider/ImageSliderThumbnails.test.js +48 -0
  256. package/dist/ImageSlider/index.d.ts +3 -0
  257. package/dist/ImageSlider/index.js +1 -0
  258. package/dist/InvalidFormAlert/InvalidFormAlert.d.ts +68 -0
  259. package/dist/InvalidFormAlert/InvalidFormAlert.js +20 -0
  260. package/dist/InvalidFormAlert/InvalidFormAlert.test.d.ts +1 -0
  261. package/dist/InvalidFormAlert/InvalidFormAlert.test.js +104 -0
  262. package/dist/InvalidFormAlert/InvalidFormAlertWithErrors.d.ts +12 -0
  263. package/dist/InvalidFormAlert/InvalidFormAlertWithErrors.js +22 -0
  264. package/dist/InvalidFormAlert/index.d.ts +2 -0
  265. package/dist/InvalidFormAlert/index.js +1 -0
  266. package/dist/InvalidFormAlert/useAddErrorCountToDocumentTitle.d.ts +11 -0
  267. package/dist/InvalidFormAlert/useAddErrorCountToDocumentTitle.js +26 -0
  268. package/dist/Label/Label.d.ts +14 -0
  269. package/dist/Label/Label.js +13 -0
  270. package/dist/Label/Label.test.d.ts +1 -0
  271. package/dist/Label/Label.test.js +73 -0
  272. package/dist/Label/index.d.ts +1 -0
  273. package/dist/Label/index.js +1 -0
  274. package/dist/Link/Link.d.ts +13 -0
  275. package/dist/Link/Link.js +9 -0
  276. package/dist/Link/Link.test.d.ts +1 -0
  277. package/dist/Link/Link.test.js +39 -0
  278. package/dist/Link/index.d.ts +2 -0
  279. package/dist/Link/index.js +1 -0
  280. package/dist/LinkList/LinkList.d.ts +17 -0
  281. package/dist/LinkList/LinkList.js +14 -0
  282. package/dist/LinkList/LinkList.test.d.ts +1 -0
  283. package/dist/LinkList/LinkList.test.js +29 -0
  284. package/dist/LinkList/LinkListLink.d.ts +24 -0
  285. package/dist/LinkList/LinkListLink.js +14 -0
  286. package/dist/LinkList/LinkListLink.test.d.ts +1 -0
  287. package/dist/LinkList/LinkListLink.test.js +50 -0
  288. package/dist/LinkList/index.d.ts +3 -0
  289. package/dist/LinkList/index.js +1 -0
  290. package/dist/Logo/Logo.d.ts +11 -0
  291. package/dist/Logo/Logo.js +21 -0
  292. package/dist/Logo/Logo.test.d.ts +1 -0
  293. package/dist/Logo/Logo.test.js +29 -0
  294. package/dist/Logo/brand/LogoAmsterdam.d.ts +3 -0
  295. package/dist/Logo/brand/LogoAmsterdam.js +5 -0
  296. package/dist/Logo/brand/LogoGgdAmsterdam.d.ts +3 -0
  297. package/dist/Logo/brand/LogoGgdAmsterdam.js +5 -0
  298. package/dist/Logo/brand/LogoMuseumWeesp.d.ts +3 -0
  299. package/dist/Logo/brand/LogoMuseumWeesp.js +5 -0
  300. package/dist/Logo/brand/LogoStadsarchief.d.ts +3 -0
  301. package/dist/Logo/brand/LogoStadsarchief.js +5 -0
  302. package/dist/Logo/brand/LogoStadsbankVanLening.d.ts +3 -0
  303. package/dist/Logo/brand/LogoStadsbankVanLening.js +5 -0
  304. package/dist/Logo/brand/LogoVgaVerzekeringen.d.ts +3 -0
  305. package/dist/Logo/brand/LogoVgaVerzekeringen.js +5 -0
  306. package/dist/Logo/brand/index.d.ts +6 -0
  307. package/dist/Logo/brand/index.js +6 -0
  308. package/dist/Logo/index.d.ts +2 -0
  309. package/dist/Logo/index.js +1 -0
  310. package/dist/Mark/Mark.d.ts +9 -0
  311. package/dist/Mark/Mark.js +9 -0
  312. package/dist/Mark/Mark.test.d.ts +1 -0
  313. package/dist/Mark/Mark.test.js +29 -0
  314. package/dist/Mark/index.d.ts +2 -0
  315. package/dist/Mark/index.js +1 -0
  316. package/dist/OrderedList/OrderedList.d.ts +27 -0
  317. package/dist/OrderedList/OrderedList.js +11 -0
  318. package/dist/OrderedList/OrderedList.test.d.ts +1 -0
  319. package/dist/OrderedList/OrderedList.test.js +51 -0
  320. package/dist/OrderedList/OrderedListItem.d.ts +9 -0
  321. package/dist/OrderedList/OrderedListItem.js +9 -0
  322. package/dist/OrderedList/OrderedListItem.test.d.ts +1 -0
  323. package/dist/OrderedList/OrderedListItem.test.js +28 -0
  324. package/dist/OrderedList/index.d.ts +3 -0
  325. package/dist/OrderedList/index.js +1 -0
  326. package/dist/Overlap/Overlap.d.ts +9 -0
  327. package/dist/Overlap/Overlap.js +9 -0
  328. package/dist/Overlap/Overlap.test.d.ts +1 -0
  329. package/dist/Overlap/Overlap.test.js +34 -0
  330. package/dist/Overlap/index.d.ts +2 -0
  331. package/dist/Overlap/index.js +1 -0
  332. package/dist/Page/Page.d.ts +9 -0
  333. package/dist/Page/Page.js +9 -0
  334. package/dist/Page/Page.test.d.ts +1 -0
  335. package/dist/Page/Page.test.js +29 -0
  336. package/dist/Page/index.d.ts +2 -0
  337. package/dist/Page/index.js +1 -0
  338. package/dist/PageFooter/PageFooter.d.ts +19 -0
  339. package/dist/PageFooter/PageFooter.js +17 -0
  340. package/dist/PageFooter/PageFooter.test.d.ts +1 -0
  341. package/dist/PageFooter/PageFooter.test.js +29 -0
  342. package/dist/PageFooter/PageFooterMenu.d.ts +9 -0
  343. package/dist/PageFooter/PageFooterMenu.js +9 -0
  344. package/dist/PageFooter/PageFooterMenu.test.d.ts +1 -0
  345. package/dist/PageFooter/PageFooterMenu.test.js +31 -0
  346. package/dist/PageFooter/PageFooterMenuLink.d.ts +9 -0
  347. package/dist/PageFooter/PageFooterMenuLink.js +9 -0
  348. package/dist/PageFooter/PageFooterMenuLink.test.d.ts +1 -0
  349. package/dist/PageFooter/PageFooterMenuLink.test.js +29 -0
  350. package/dist/PageFooter/PageFooterSpotlight.d.ts +9 -0
  351. package/dist/PageFooter/PageFooterSpotlight.js +9 -0
  352. package/dist/PageFooter/PageFooterSpotlight.test.d.ts +1 -0
  353. package/dist/PageFooter/PageFooterSpotlight.test.js +29 -0
  354. package/dist/PageFooter/index.d.ts +5 -0
  355. package/dist/PageFooter/index.js +1 -0
  356. package/dist/PageHeader/PageHeader.d.ts +49 -0
  357. package/dist/PageHeader/PageHeader.js +31 -0
  358. package/dist/PageHeader/PageHeader.test.d.ts +2 -0
  359. package/dist/PageHeader/PageHeader.test.js +120 -0
  360. package/dist/PageHeader/PageHeaderGridCellNarrowWindowOnly.d.ts +2 -0
  361. package/dist/PageHeader/PageHeaderGridCellNarrowWindowOnly.js +6 -0
  362. package/dist/PageHeader/PageHeaderGridCellNarrowWindowOnly.test.d.ts +1 -0
  363. package/dist/PageHeader/PageHeaderGridCellNarrowWindowOnly.test.js +34 -0
  364. package/dist/PageHeader/PageHeaderMenuIcon.d.ts +2 -0
  365. package/dist/PageHeader/PageHeaderMenuIcon.js +2 -0
  366. package/dist/PageHeader/PageHeaderMenuLink.d.ts +9 -0
  367. package/dist/PageHeader/PageHeaderMenuLink.js +5 -0
  368. package/dist/PageHeader/PageHeaderMenuLink.test.d.ts +1 -0
  369. package/dist/PageHeader/PageHeaderMenuLink.test.js +41 -0
  370. package/dist/PageHeader/index.d.ts +3 -0
  371. package/dist/PageHeader/index.js +1 -0
  372. package/dist/PageHeader/matchMedia.mock.d.ts +0 -0
  373. package/dist/PageHeader/matchMedia.mock.js +15 -0
  374. package/dist/PageHeading/PageHeading.d.ts +15 -0
  375. package/dist/PageHeading/PageHeading.js +9 -0
  376. package/dist/PageHeading/PageHeading.test.d.ts +1 -0
  377. package/dist/PageHeading/PageHeading.test.js +36 -0
  378. package/dist/PageHeading/index.d.ts +2 -0
  379. package/dist/PageHeading/index.js +1 -0
  380. package/dist/Pagination/LinkItem.d.ts +7 -0
  381. package/dist/Pagination/LinkItem.js +7 -0
  382. package/dist/Pagination/Pagination.d.ts +59 -0
  383. package/dist/Pagination/Pagination.js +23 -0
  384. package/dist/Pagination/Pagination.test.d.ts +1 -0
  385. package/dist/Pagination/Pagination.test.js +120 -0
  386. package/dist/Pagination/Spacer.d.ts +1 -0
  387. package/dist/Pagination/Spacer.js +2 -0
  388. package/dist/Pagination/getRange.d.ts +16 -0
  389. package/dist/Pagination/getRange.js +41 -0
  390. package/dist/Pagination/index.d.ts +2 -0
  391. package/dist/Pagination/index.js +1 -0
  392. package/dist/Paragraph/Paragraph.d.ts +20 -0
  393. package/dist/Paragraph/Paragraph.js +10 -0
  394. package/dist/Paragraph/Paragraph.test.d.ts +1 -0
  395. package/dist/Paragraph/Paragraph.test.js +58 -0
  396. package/dist/Paragraph/index.d.ts +2 -0
  397. package/dist/Paragraph/index.js +1 -0
  398. package/dist/PasswordInput/PasswordInput.d.ts +13 -0
  399. package/dist/PasswordInput/PasswordInput.js +9 -0
  400. package/dist/PasswordInput/PasswordInput.test.d.ts +1 -0
  401. package/dist/PasswordInput/PasswordInput.test.js +85 -0
  402. package/dist/PasswordInput/index.d.ts +2 -0
  403. package/dist/PasswordInput/index.js +1 -0
  404. package/dist/Radio/Radio.d.ts +19 -0
  405. package/dist/Radio/Radio.js +16 -0
  406. package/dist/Radio/Radio.test.d.ts +1 -0
  407. package/dist/Radio/Radio.test.js +121 -0
  408. package/dist/Radio/RadioIcon.d.ts +3 -0
  409. package/dist/Radio/RadioIcon.js +3 -0
  410. package/dist/Radio/index.d.ts +2 -0
  411. package/dist/Radio/index.js +1 -0
  412. package/dist/Row/Row.d.ts +67 -0
  413. package/dist/Row/Row.js +11 -0
  414. package/dist/Row/Row.test.d.ts +1 -0
  415. package/dist/Row/Row.test.js +60 -0
  416. package/dist/Row/index.d.ts +2 -0
  417. package/dist/Row/index.js +1 -0
  418. package/dist/SearchField/SearchField.d.ts +294 -0
  419. package/dist/SearchField/SearchField.js +14 -0
  420. package/dist/SearchField/SearchField.test.d.ts +1 -0
  421. package/dist/SearchField/SearchField.test.js +46 -0
  422. package/dist/SearchField/SearchFieldButton.d.ts +8 -0
  423. package/dist/SearchField/SearchFieldButton.js +10 -0
  424. package/dist/SearchField/SearchFieldInput.d.ts +11 -0
  425. package/dist/SearchField/SearchFieldInput.js +12 -0
  426. package/dist/SearchField/SearchFieldInput.test.d.ts +1 -0
  427. package/dist/SearchField/SearchFieldInput.test.js +61 -0
  428. package/dist/SearchField/index.d.ts +2 -0
  429. package/dist/SearchField/index.js +1 -0
  430. package/dist/Select/Select.d.ts +22 -0
  431. package/dist/Select/Select.js +12 -0
  432. package/dist/Select/Select.test.d.ts +1 -0
  433. package/dist/Select/Select.test.js +70 -0
  434. package/dist/Select/SelectOption.d.ts +9 -0
  435. package/dist/Select/SelectOption.js +9 -0
  436. package/dist/Select/SelectOption.test.d.ts +1 -0
  437. package/dist/Select/SelectOption.test.js +41 -0
  438. package/dist/Select/SelectOptionGroup.d.ts +9 -0
  439. package/dist/Select/SelectOptionGroup.js +9 -0
  440. package/dist/Select/SelectOptionGroup.test.d.ts +1 -0
  441. package/dist/Select/SelectOptionGroup.test.js +41 -0
  442. package/dist/Select/index.d.ts +3 -0
  443. package/dist/Select/index.js +1 -0
  444. package/dist/SkipLink/SkipLink.d.ts +9 -0
  445. package/dist/SkipLink/SkipLink.js +9 -0
  446. package/dist/SkipLink/SkipLink.test.d.ts +1 -0
  447. package/dist/SkipLink/SkipLink.test.js +29 -0
  448. package/dist/SkipLink/index.d.ts +2 -0
  449. package/dist/SkipLink/index.js +1 -0
  450. package/dist/Spotlight/Spotlight.d.ts +24 -0
  451. package/dist/Spotlight/Spotlight.js +11 -0
  452. package/dist/Spotlight/Spotlight.test.d.ts +1 -0
  453. package/dist/Spotlight/Spotlight.test.js +42 -0
  454. package/dist/Spotlight/index.d.ts +2 -0
  455. package/dist/Spotlight/index.js +1 -0
  456. package/dist/StandaloneLink/StandaloneLink.d.ts +17 -0
  457. package/dist/StandaloneLink/StandaloneLink.js +10 -0
  458. package/dist/StandaloneLink/StandaloneLink.test.d.ts +1 -0
  459. package/dist/StandaloneLink/StandaloneLink.test.js +40 -0
  460. package/dist/StandaloneLink/index.d.ts +2 -0
  461. package/dist/StandaloneLink/index.js +1 -0
  462. package/dist/Switch/Switch.d.ts +9 -0
  463. package/dist/Switch/Switch.js +12 -0
  464. package/dist/Switch/Switch.test.d.ts +1 -0
  465. package/dist/Switch/Switch.test.js +65 -0
  466. package/dist/Switch/index.d.ts +2 -0
  467. package/dist/Switch/index.js +1 -0
  468. package/dist/Table/Table.d.ts +31 -0
  469. package/dist/Table/Table.js +25 -0
  470. package/dist/Table/Table.test.d.ts +1 -0
  471. package/dist/Table/Table.test.js +29 -0
  472. package/dist/Table/TableBody.d.ts +9 -0
  473. package/dist/Table/TableBody.js +9 -0
  474. package/dist/Table/TableBody.test.d.ts +1 -0
  475. package/dist/Table/TableBody.test.js +30 -0
  476. package/dist/Table/TableCaption.d.ts +10 -0
  477. package/dist/Table/TableCaption.js +10 -0
  478. package/dist/Table/TableCaption.test.d.ts +1 -0
  479. package/dist/Table/TableCaption.test.js +41 -0
  480. package/dist/Table/TableCell.d.ts +9 -0
  481. package/dist/Table/TableCell.js +9 -0
  482. package/dist/Table/TableCell.test.d.ts +1 -0
  483. package/dist/Table/TableCell.test.js +32 -0
  484. package/dist/Table/TableFooter.d.ts +9 -0
  485. package/dist/Table/TableFooter.js +9 -0
  486. package/dist/Table/TableFooter.test.d.ts +1 -0
  487. package/dist/Table/TableFooter.test.js +30 -0
  488. package/dist/Table/TableHeader.d.ts +9 -0
  489. package/dist/Table/TableHeader.js +9 -0
  490. package/dist/Table/TableHeader.test.d.ts +1 -0
  491. package/dist/Table/TableHeader.test.js +30 -0
  492. package/dist/Table/TableHeaderCell.d.ts +9 -0
  493. package/dist/Table/TableHeaderCell.js +9 -0
  494. package/dist/Table/TableHeaderCell.test.d.ts +1 -0
  495. package/dist/Table/TableHeaderCell.test.js +38 -0
  496. package/dist/Table/TableRow.d.ts +9 -0
  497. package/dist/Table/TableRow.js +9 -0
  498. package/dist/Table/TableRow.test.d.ts +1 -0
  499. package/dist/Table/TableRow.test.js +31 -0
  500. package/dist/Table/index.d.ts +2 -0
  501. package/dist/Table/index.js +1 -0
  502. package/dist/TableOfContents/TableOfContents.d.ts +33 -0
  503. package/dist/TableOfContents/TableOfContents.js +18 -0
  504. package/dist/TableOfContents/TableOfContents.test.d.ts +1 -0
  505. package/dist/TableOfContents/TableOfContents.test.js +40 -0
  506. package/dist/TableOfContents/TableOfContentsLink.d.ts +13 -0
  507. package/dist/TableOfContents/TableOfContentsLink.js +9 -0
  508. package/dist/TableOfContents/TableOfContentsLink.test.d.ts +1 -0
  509. package/dist/TableOfContents/TableOfContentsLink.test.js +30 -0
  510. package/dist/TableOfContents/TableOfContentsList.d.ts +9 -0
  511. package/dist/TableOfContents/TableOfContentsList.js +11 -0
  512. package/dist/TableOfContents/TableOfContentsList.test.d.ts +1 -0
  513. package/dist/TableOfContents/TableOfContentsList.test.js +36 -0
  514. package/dist/TableOfContents/index.d.ts +4 -0
  515. package/dist/TableOfContents/index.js +1 -0
  516. package/dist/Tabs/Tabs.d.ts +31 -0
  517. package/dist/Tabs/Tabs.js +56 -0
  518. package/dist/Tabs/Tabs.test.d.ts +1 -0
  519. package/dist/Tabs/Tabs.test.js +100 -0
  520. package/dist/Tabs/TabsButton.d.ts +15 -0
  521. package/dist/Tabs/TabsButton.js +19 -0
  522. package/dist/Tabs/TabsButton.test.d.ts +1 -0
  523. package/dist/Tabs/TabsButton.test.js +43 -0
  524. package/dist/Tabs/TabsContext.d.ts +11 -0
  525. package/dist/Tabs/TabsContext.js +10 -0
  526. package/dist/Tabs/TabsList.d.ts +9 -0
  527. package/dist/Tabs/TabsList.js +20 -0
  528. package/dist/Tabs/TabsList.test.d.ts +1 -0
  529. package/dist/Tabs/TabsList.test.js +28 -0
  530. package/dist/Tabs/TabsPanel.d.ts +15 -0
  531. package/dist/Tabs/TabsPanel.js +16 -0
  532. package/dist/Tabs/TabsPanel.test.d.ts +1 -0
  533. package/dist/Tabs/TabsPanel.test.js +38 -0
  534. package/dist/Tabs/index.d.ts +5 -0
  535. package/dist/Tabs/index.js +1 -0
  536. package/dist/TextArea/TextArea.d.ts +17 -0
  537. package/dist/TextArea/TextArea.js +9 -0
  538. package/dist/TextArea/TextArea.test.d.ts +1 -0
  539. package/dist/TextArea/TextArea.test.js +101 -0
  540. package/dist/TextArea/index.d.ts +2 -0
  541. package/dist/TextArea/index.js +1 -0
  542. package/dist/TextInput/TextInput.d.ts +20 -0
  543. package/dist/TextInput/TextInput.js +10 -0
  544. package/dist/TextInput/TextInput.test.d.ts +1 -0
  545. package/dist/TextInput/TextInput.test.js +88 -0
  546. package/dist/TextInput/index.d.ts +2 -0
  547. package/dist/TextInput/index.js +1 -0
  548. package/dist/TimeInput/TimeInput.d.ts +13 -0
  549. package/dist/TimeInput/TimeInput.js +9 -0
  550. package/dist/TimeInput/TimeInput.test.d.ts +1 -0
  551. package/dist/TimeInput/TimeInput.test.js +47 -0
  552. package/dist/TimeInput/index.d.ts +2 -0
  553. package/dist/TimeInput/index.js +1 -0
  554. package/dist/UnorderedList/UnorderedList.d.ts +27 -0
  555. package/dist/UnorderedList/UnorderedList.js +13 -0
  556. package/dist/UnorderedList/UnorderedList.test.d.ts +1 -0
  557. package/dist/UnorderedList/UnorderedList.test.js +51 -0
  558. package/dist/UnorderedList/UnorderedListItem.d.ts +9 -0
  559. package/dist/UnorderedList/UnorderedListItem.js +9 -0
  560. package/dist/UnorderedList/UnorderedListItem.test.d.ts +1 -0
  561. package/dist/UnorderedList/UnorderedListItem.test.js +28 -0
  562. package/dist/UnorderedList/index.d.ts +3 -0
  563. package/dist/UnorderedList/index.js +1 -0
  564. package/dist/common/accessibility.d.ts +13 -0
  565. package/dist/common/accessibility.js +13 -0
  566. package/dist/common/formatFileSize.d.ts +10 -0
  567. package/dist/common/formatFileSize.js +17 -0
  568. package/dist/common/formatFileSize.test.d.ts +1 -0
  569. package/dist/common/formatFileSize.test.js +18 -0
  570. package/dist/common/formatFileType.d.ts +10 -0
  571. package/dist/common/formatFileType.js +34 -0
  572. package/dist/common/formatFileType.test.d.ts +1 -0
  573. package/dist/common/formatFileType.test.js +23 -0
  574. package/dist/common/shortSize.d.ts +12 -0
  575. package/dist/common/shortSize.js +15 -0
  576. package/dist/common/types.d.ts +11 -0
  577. package/dist/common/types.js +9 -0
  578. package/dist/common/useIsAfterBreakpoint.d.ts +3 -0
  579. package/dist/common/useIsAfterBreakpoint.js +24 -0
  580. package/dist/common/useKeyboardFocus.d.ts +23 -0
  581. package/dist/common/useKeyboardFocus.js +56 -0
  582. package/dist/common/useKeyboardFocus.test.d.ts +1 -0
  583. package/dist/common/useKeyboardFocus.test.js +79 -0
  584. package/dist/index.cjs.js +1512 -1564
  585. package/dist/index.cjs.js.map +1 -1
  586. package/dist/index.d.ts +339 -345
  587. package/dist/index.esm.js +1509 -1560
  588. package/dist/index.esm.js.map +1 -1
  589. package/dist/index.js +64 -0
  590. package/dist/tsconfig.tsbuildinfo +1 -0
  591. package/package.json +23 -24
@@ -0,0 +1,49 @@
1
+ /**
2
+ * @license EUPL-1.2+
3
+ * Copyright Gemeente Amsterdam
4
+ */
5
+ import type { HTMLAttributes, ReactNode } from 'react';
6
+ import type { LogoBrand } from '../Logo';
7
+ export type PageHeaderProps = {
8
+ /** The name of the application. */
9
+ brandName?: string;
10
+ /** The name of the brand for which to display the logo. */
11
+ logoBrand?: LogoBrand;
12
+ /** The url for the link on the logo. */
13
+ logoLink?: string;
14
+ /** The accessible text for the link on the logo. */
15
+ logoLinkTitle?: string;
16
+ /** The text for the menu button. */
17
+ menuButtonText?: string;
18
+ /** A slot for the menu items. Use PageHeader.MenuLink here. */
19
+ menuItems?: ReactNode;
20
+ /** The accessible label for the navigation section. */
21
+ navigationLabel?: string;
22
+ /** Whether the menu button is visible on wide screens. */
23
+ noMenuButtonOnWideWindow?: boolean;
24
+ } & HTMLAttributes<HTMLElement>;
25
+ export declare const PageHeader: import("react").ForwardRefExoticComponent<{
26
+ /** The name of the application. */
27
+ brandName?: string;
28
+ /** The name of the brand for which to display the logo. */
29
+ logoBrand?: LogoBrand;
30
+ /** The url for the link on the logo. */
31
+ logoLink?: string;
32
+ /** The accessible text for the link on the logo. */
33
+ logoLinkTitle?: string;
34
+ /** The text for the menu button. */
35
+ menuButtonText?: string;
36
+ /** A slot for the menu items. Use PageHeader.MenuLink here. */
37
+ menuItems?: ReactNode;
38
+ /** The accessible label for the navigation section. */
39
+ navigationLabel?: string;
40
+ /** Whether the menu button is visible on wide screens. */
41
+ noMenuButtonOnWideWindow?: boolean;
42
+ } & HTMLAttributes<HTMLElement> & import("react").RefAttributes<HTMLElement>> & {
43
+ GridCellNarrowWindowOnly: import("react").ForwardRefExoticComponent<import("..").GridCellProps & import("react").RefAttributes<HTMLElement>>;
44
+ MenuLink: import("react").ForwardRefExoticComponent<{
45
+ fixed?: boolean;
46
+ } & import("react").AnchorHTMLAttributes<HTMLAnchorElement> & {
47
+ children?: ReactNode | undefined;
48
+ } & import("react").RefAttributes<HTMLAnchorElement>>;
49
+ };
@@ -0,0 +1,31 @@
1
+ import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
2
+ /**
3
+ * @license EUPL-1.2+
4
+ * Copyright Gemeente Amsterdam
5
+ */
6
+ import clsx from 'clsx';
7
+ import { forwardRef, useEffect, useState } from 'react';
8
+ import { Icon } from '../Icon';
9
+ import { Logo } from '../Logo';
10
+ import { PageHeaderGridCellNarrowWindowOnly } from './PageHeaderGridCellNarrowWindowOnly';
11
+ import { PageHeaderMenuIcon } from './PageHeaderMenuIcon';
12
+ import { PageHeaderMenuLink } from './PageHeaderMenuLink';
13
+ import useIsAfterBreakpoint from '../common/useIsAfterBreakpoint';
14
+ const LogoLinkContent = ({ brandName, logoBrand }) => (_jsxs(_Fragment, { children: [_jsx("span", { className: clsx(logoBrand === 'amsterdam' && Boolean(brandName) && 'ams-page-header__logo-container'), children: _jsx(Logo, { brand: logoBrand }) }), brandName && (_jsx("span", { "aria-hidden": "true", className: "ams-page-header__brand-name", children: brandName }))] }));
15
+ const PageHeaderRoot = forwardRef(({ brandName, children, className, logoBrand = 'amsterdam', logoLink = '/', logoLinkTitle = 'Ga naar de homepage', menuButtonText = 'Menu', menuItems, navigationLabel = 'Hoofdnavigatie', noMenuButtonOnWideWindow, ...restProps }, ref) => {
16
+ const [open, setOpen] = useState(false);
17
+ const hasMegaMenu = Boolean(children);
18
+ const isWideWindow = hasMegaMenu && useIsAfterBreakpoint('wide');
19
+ useEffect(() => {
20
+ // Close the menu when the menu button disappears
21
+ if (noMenuButtonOnWideWindow && isWideWindow) {
22
+ setOpen(false);
23
+ }
24
+ }, [isWideWindow]);
25
+ return (_jsxs("header", { ...restProps, className: clsx('ams-page-header', className), ref: ref, children: [_jsxs("a", { className: "ams-page-header__logo-link", href: logoLink, children: [_jsx("span", { className: "ams-visually-hidden", children: logoLinkTitle }), _jsx(LogoLinkContent, { brandName: brandName, logoBrand: logoBrand })] }), (hasMegaMenu || menuItems) && (_jsxs("nav", { "aria-labelledby": "primary-navigation", className: "ams-page-header__navigation", children: [_jsx("h2", { className: "ams-visually-hidden", id: "primary-navigation", children: navigationLabel }), _jsx("div", { className: "ams-page-header__logo-link ams-page-header__logo-link--hidden", children: _jsx(LogoLinkContent, { brandName: brandName, logoBrand: logoBrand }) }), _jsxs("ul", { className: "ams-page-header__menu", children: [menuItems, hasMegaMenu && (_jsx("li", { className: clsx(noMenuButtonOnWideWindow && 'ams-page-header__mega-menu-button-item--hide-on-wide-window'), children: _jsxs("button", { "aria-controls": "ams-page-header-mega-menu", "aria-expanded": open, className: "ams-page-header__mega-menu-button", onClick: () => setOpen(!open), type: "button", children: [_jsx("span", { className: "ams-page-header__mega-menu-button-label", children: menuButtonText }), _jsx("span", { "aria-hidden": "true", className: "ams-page-header__mega-menu-button-hidden-label", children: menuButtonText }), _jsx(Icon, { svg: _jsx(PageHeaderMenuIcon, { className: clsx('ams-page-header__menu-icon', open && 'ams-page-header__menu-icon--open') }) })] }) }))] }), hasMegaMenu && (_jsx("div", { className: clsx('ams-page-header__mega-menu', !open && 'ams-page-header__mega-menu--closed'), id: "ams-page-header-mega-menu", children: children }))] }))] }));
26
+ });
27
+ PageHeaderRoot.displayName = 'PageHeader';
28
+ export const PageHeader = Object.assign(PageHeaderRoot, {
29
+ GridCellNarrowWindowOnly: PageHeaderGridCellNarrowWindowOnly,
30
+ MenuLink: PageHeaderMenuLink,
31
+ });
@@ -0,0 +1,2 @@
1
+ import './matchMedia.mock';
2
+ import '@testing-library/jest-dom';
@@ -0,0 +1,120 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { render, screen } from '@testing-library/react';
3
+ import userEvent from '@testing-library/user-event';
4
+ import { createRef } from 'react';
5
+ import './matchMedia.mock'; // Must be imported before PageHeader
6
+ import { PageHeader } from './PageHeader';
7
+ import '@testing-library/jest-dom';
8
+ describe('Page Header', () => {
9
+ it('renders', () => {
10
+ render(_jsx(PageHeader, {}));
11
+ const component = screen.getByRole('banner');
12
+ expect(component).toBeInTheDocument();
13
+ expect(component).toBeVisible();
14
+ });
15
+ it('renders a design system BEM class name', () => {
16
+ render(_jsx(PageHeader, {}));
17
+ const component = screen.getByRole('banner');
18
+ expect(component).toHaveClass('ams-page-header');
19
+ });
20
+ it('renders an extra class name', () => {
21
+ render(_jsx(PageHeader, { className: "extra" }));
22
+ const component = screen.getByRole('banner');
23
+ expect(component).toHaveClass('ams-page-header extra');
24
+ });
25
+ it('supports ForwardRef in React', () => {
26
+ const ref = createRef();
27
+ render(_jsx(PageHeader, { ref: ref }));
28
+ const component = screen.getByRole('banner');
29
+ expect(ref.current).toBe(component);
30
+ });
31
+ it('renders a logo link', () => {
32
+ render(_jsx(PageHeader, {}));
33
+ const component = screen.getByRole('link');
34
+ expect(component).toHaveClass('ams-page-header__logo-link');
35
+ });
36
+ it('renders a different brand logo', () => {
37
+ const { container } = render(_jsx(PageHeader, { logoBrand: "ggd-amsterdam" }));
38
+ const component = container.querySelector('.ams-logo__text-secondary');
39
+ expect(component).toBeInTheDocument();
40
+ });
41
+ it('renders a custom logo link', () => {
42
+ render(_jsx(PageHeader, { logoLink: "/home" }));
43
+ const logoLink = screen.getByRole('link');
44
+ expect(logoLink).toHaveAttribute('href', '/home');
45
+ });
46
+ it('renders a custom logo link title', () => {
47
+ render(_jsx(PageHeader, { logoLinkTitle: "Go to homepage" }));
48
+ const logoLinkTitle = screen.getByRole('link', { name: 'Go to homepage' });
49
+ expect(logoLinkTitle).toBeInTheDocument();
50
+ });
51
+ it('renders an application name', () => {
52
+ render(_jsx(PageHeader, { brandName: "Application name" }));
53
+ const brandName = screen.getByText('Application name');
54
+ expect(brandName).toBeInTheDocument();
55
+ });
56
+ it('renders the correct class for the responsive logo', () => {
57
+ const { container } = render(_jsx(PageHeader, { brandName: "Application name" }));
58
+ const logoContainer = container.querySelector('.ams-page-header__logo-container');
59
+ expect(logoContainer).toBeInTheDocument();
60
+ });
61
+ it('renders a nav section', () => {
62
+ render(_jsx(PageHeader, { children: "Test" }));
63
+ const component = screen.getByRole('navigation');
64
+ expect(component).toHaveClass('ams-page-header__navigation');
65
+ });
66
+ it('renders a nav section with a custom label', () => {
67
+ render(_jsx(PageHeader, { navigationLabel: "Custom Navigation", children: "Test" }));
68
+ const component = screen.getByRole('navigation', { name: 'Custom Navigation' });
69
+ expect(component).toBeInTheDocument();
70
+ });
71
+ it('renders a menu', () => {
72
+ render(_jsx(PageHeader, { menuItems: _jsx(PageHeader.MenuLink, { children: "Menu Item" }) }));
73
+ const component = screen.getByRole('list');
74
+ expect(component).toHaveClass('ams-page-header__menu');
75
+ });
76
+ it('renders menu items', () => {
77
+ render(_jsx(PageHeader, { menuItems: [
78
+ _jsx(PageHeader.MenuLink, { href: "/", children: "Menu Item 1" }, 1),
79
+ _jsx(PageHeader.MenuLink, { href: "/", children: "Menu Item 2" }, 2),
80
+ ] }));
81
+ const item1 = screen.getByRole('link', { name: 'Menu Item 1' });
82
+ const item2 = screen.getByRole('link', { name: 'Menu Item 2' });
83
+ expect(item1).toBeInTheDocument();
84
+ expect(item2).toBeInTheDocument();
85
+ });
86
+ it('renders a menu button', () => {
87
+ render(_jsx(PageHeader, { children: "Test" }));
88
+ const component = screen.getByRole('button', { name: 'Menu' });
89
+ expect(component).toHaveClass('ams-page-header__mega-menu-button');
90
+ });
91
+ it('renders a menu button icon', () => {
92
+ const { container } = render(_jsx(PageHeader, { children: "Test" }));
93
+ const component = container.querySelector('.ams-page-header__menu-icon');
94
+ expect(component).toBeInTheDocument();
95
+ });
96
+ it('renders a custom menu button text', () => {
97
+ render(_jsx(PageHeader, { menuButtonText: "Custom button text", children: "Test" }));
98
+ const component = screen.getByRole('button', { name: 'Custom button text' });
99
+ expect(component).toBeInTheDocument();
100
+ });
101
+ it('renders the correct class when noMenuButtonOnWideWindow is true', () => {
102
+ render(_jsx(PageHeader, { noMenuButtonOnWideWindow: true, children: "Test" }));
103
+ const component = screen.getByRole('listitem');
104
+ expect(component).toHaveClass('ams-page-header__mega-menu-button-item--hide-on-wide-window');
105
+ });
106
+ it('opens and closes the mega menu', async () => {
107
+ const user = userEvent.setup();
108
+ const { container } = render(_jsx(PageHeader, { children: "Test" }));
109
+ const closedMegaMenu = container.querySelector('.ams-page-header__mega-menu--closed');
110
+ expect(closedMegaMenu).toBeInTheDocument();
111
+ const menuButton = screen.getByRole('button', { name: 'Menu' });
112
+ await user.click(menuButton);
113
+ const openMegaMenu = container.querySelector('.ams-page-header__mega-menu');
114
+ expect(openMegaMenu).toBeInTheDocument();
115
+ expect(openMegaMenu).not.toHaveClass('ams-page-header__mega-menu--closed');
116
+ });
117
+ it.skip('it closes the mega menu when it is open and the screen width passes the breakpoint', () => {
118
+ // TODO: Add this test
119
+ });
120
+ });
@@ -0,0 +1,2 @@
1
+ import { GridCellProps } from '../Grid';
2
+ export declare const PageHeaderGridCellNarrowWindowOnly: import("react").ForwardRefExoticComponent<GridCellProps & import("react").RefAttributes<HTMLElement>>;
@@ -0,0 +1,6 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import clsx from 'clsx';
3
+ import { forwardRef } from 'react';
4
+ import { Grid } from '../Grid';
5
+ export const PageHeaderGridCellNarrowWindowOnly = forwardRef(({ children, className, ...restProps }, ref) => (_jsx(Grid.Cell, { ...restProps, className: clsx('ams-page-header__grid-cell-narrow-window-only', className), ref: ref, children: children })));
6
+ PageHeaderGridCellNarrowWindowOnly.displayName = 'PageHeader.GridCellNarrowWindowOnly';
@@ -0,0 +1 @@
1
+ import '@testing-library/jest-dom';
@@ -0,0 +1,34 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { render } from '@testing-library/react';
3
+ import { createRef } from 'react';
4
+ import { PageHeaderGridCellNarrowWindowOnly } from './PageHeaderGridCellNarrowWindowOnly';
5
+ import '@testing-library/jest-dom';
6
+ describe('Page Header Grid Cell Narrow Window Only', () => {
7
+ it('renders', () => {
8
+ const { container } = render(_jsx(PageHeaderGridCellNarrowWindowOnly, {}));
9
+ const component = container.querySelector(':only-child');
10
+ expect(component).toBeInTheDocument();
11
+ expect(component).toBeVisible();
12
+ });
13
+ it('renders a Grid.Cell', () => {
14
+ const { container } = render(_jsx(PageHeaderGridCellNarrowWindowOnly, {}));
15
+ const component = container.querySelector(':only-child');
16
+ expect(component).toHaveClass('ams-grid__cell');
17
+ });
18
+ it('renders a design system BEM class name', () => {
19
+ const { container } = render(_jsx(PageHeaderGridCellNarrowWindowOnly, {}));
20
+ const component = container.querySelector(':only-child');
21
+ expect(component).toHaveClass('ams-page-header__grid-cell-narrow-window-only');
22
+ });
23
+ it('renders an extra class name', () => {
24
+ const { container } = render(_jsx(PageHeaderGridCellNarrowWindowOnly, { className: "extra" }));
25
+ const component = container.querySelector(':only-child');
26
+ expect(component).toHaveClass('ams-page-header__grid-cell-narrow-window-only extra');
27
+ });
28
+ it('supports ForwardRef in React', () => {
29
+ const ref = createRef();
30
+ const { container } = render(_jsx(PageHeaderGridCellNarrowWindowOnly, { ref: ref }));
31
+ const component = container.querySelector(':only-child');
32
+ expect(ref.current).toBe(component);
33
+ });
34
+ });
@@ -0,0 +1,2 @@
1
+ import type { SVGProps } from 'react';
2
+ export declare const PageHeaderMenuIcon: (props: SVGProps<SVGSVGElement>) => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,2 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ export const PageHeaderMenuIcon = (props) => (_jsxs("svg", { "aria-hidden": "true", focusable: "false", viewBox: "0 0 24 24", xmlns: "http://www.w3.org/2000/svg", ...props, children: [_jsx("line", { className: "ams-page-header__menu-icon-top", x1: "0", x2: "100%", y1: "50%", y2: "50%" }), _jsx("line", { className: "ams-page-header__menu-icon-middle", x1: "0", x2: "100%", y1: "50%", y2: "50%" }), _jsx("line", { className: "ams-page-header__menu-icon-bottom", x1: "0", x2: "100%", y1: "50%", y2: "50%" })] }));
@@ -0,0 +1,9 @@
1
+ import { AnchorHTMLAttributes, PropsWithChildren } from 'react';
2
+ export type PageHeaderMenuLinkProps = {
3
+ fixed?: boolean;
4
+ } & PropsWithChildren<AnchorHTMLAttributes<HTMLAnchorElement>>;
5
+ export declare const PageHeaderMenuLink: import("react").ForwardRefExoticComponent<{
6
+ fixed?: boolean;
7
+ } & AnchorHTMLAttributes<HTMLAnchorElement> & {
8
+ children?: import("react").ReactNode | undefined;
9
+ } & import("react").RefAttributes<HTMLAnchorElement>>;
@@ -0,0 +1,5 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import clsx from 'clsx';
3
+ import { forwardRef } from 'react';
4
+ export const PageHeaderMenuLink = forwardRef(({ children, className, fixed, ...restProps }, ref) => (_jsx("li", { className: clsx('ams-page-header__menu-item', fixed && 'ams-page-header__menu-item--fixed'), children: _jsx("a", { ...restProps, className: clsx('ams-page-header__menu-link', className), ref: ref, children: children }) })));
5
+ PageHeaderMenuLink.displayName = 'PageHeader.MenuLink';
@@ -0,0 +1 @@
1
+ import '@testing-library/jest-dom';
@@ -0,0 +1,41 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { render, screen } from '@testing-library/react';
3
+ import { createRef } from 'react';
4
+ import { PageHeaderMenuLink } from './PageHeaderMenuLink';
5
+ import '@testing-library/jest-dom';
6
+ describe('Page Header Menu Link', () => {
7
+ it('renders', () => {
8
+ render(_jsx(PageHeaderMenuLink, { href: "/" }));
9
+ const component = screen.getByRole('listitem');
10
+ expect(component).toBeInTheDocument();
11
+ expect(component).toBeVisible();
12
+ });
13
+ it('renders a design system BEM class name', () => {
14
+ render(_jsx(PageHeaderMenuLink, { href: "/" }));
15
+ const item = screen.getByRole('listitem');
16
+ expect(item).toHaveClass('ams-page-header__menu-item');
17
+ const link = screen.getByRole('link');
18
+ expect(link).toHaveClass('ams-page-header__menu-link');
19
+ });
20
+ it('renders an extra class name', () => {
21
+ render(_jsx(PageHeaderMenuLink, { className: "extra", href: "/" }));
22
+ const component = screen.getByRole('link');
23
+ expect(component).toHaveClass('ams-page-header__menu-link extra');
24
+ });
25
+ it('renders the href attribute', () => {
26
+ render(_jsx(PageHeaderMenuLink, { href: "/" }));
27
+ const component = screen.getByRole('link');
28
+ expect(component).toHaveAttribute('href', '/');
29
+ });
30
+ it('renders the ‘fixed’ prop classname', () => {
31
+ render(_jsx(PageHeaderMenuLink, { fixed: true, href: "/" }));
32
+ const component = screen.getByRole('listitem');
33
+ expect(component).toHaveClass('ams-page-header__menu-item--fixed');
34
+ });
35
+ it('supports ForwardRef in React', () => {
36
+ const ref = createRef();
37
+ render(_jsx(PageHeaderMenuLink, { href: "/", ref: ref }));
38
+ const component = screen.getByRole('link');
39
+ expect(ref.current).toBe(component);
40
+ });
41
+ });
@@ -0,0 +1,3 @@
1
+ export { PageHeader } from './PageHeader';
2
+ export type { PageHeaderProps } from './PageHeader';
3
+ export type { PageHeaderMenuLinkProps } from './PageHeaderMenuLink';
@@ -0,0 +1 @@
1
+ export { PageHeader } from './PageHeader';
File without changes
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ // Sourced from https://jestjs.io/docs/29.4/manual-mocks#mocking-methods-which-are-not-implemented-in-jsdom
3
+ Object.defineProperty(window, 'matchMedia', {
4
+ value: jest.fn().mockImplementation((query) => ({
5
+ addEventListener: jest.fn(),
6
+ addListener: jest.fn(), // deprecated
7
+ dispatchEvent: jest.fn(),
8
+ matches: false,
9
+ media: query,
10
+ onchange: null,
11
+ removeEventListener: jest.fn(),
12
+ removeListener: jest.fn(), // deprecated
13
+ })),
14
+ writable: true,
15
+ });
@@ -0,0 +1,15 @@
1
+ /**
2
+ * @license EUPL-1.2+
3
+ * Copyright Gemeente Amsterdam
4
+ */
5
+ import type { HTMLAttributes, PropsWithChildren } from 'react';
6
+ export type PageHeadingProps = {
7
+ /** Changes the text colour for readability on a dark background. */
8
+ color?: 'inverse';
9
+ } & PropsWithChildren<HTMLAttributes<HTMLHeadingElement>>;
10
+ export declare const PageHeading: import("react").ForwardRefExoticComponent<{
11
+ /** Changes the text colour for readability on a dark background. */
12
+ color?: "inverse";
13
+ } & HTMLAttributes<HTMLHeadingElement> & {
14
+ children?: import("react").ReactNode | undefined;
15
+ } & import("react").RefAttributes<HTMLHeadingElement>>;
@@ -0,0 +1,9 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ /**
3
+ * @license EUPL-1.2+
4
+ * Copyright Gemeente Amsterdam
5
+ */
6
+ import clsx from 'clsx';
7
+ import { forwardRef } from 'react';
8
+ export const PageHeading = forwardRef(({ children, className, color, ...restProps }, ref) => (_jsx("h1", { ...restProps, className: clsx('ams-page-heading', color && `ams-page-heading--${color}`, className), ref: ref, children: children })));
9
+ PageHeading.displayName = 'PageHeading';
@@ -0,0 +1 @@
1
+ import '@testing-library/jest-dom';
@@ -0,0 +1,36 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { render, screen } from '@testing-library/react';
3
+ import { createRef } from 'react';
4
+ import { PageHeading } from './PageHeading';
5
+ import '@testing-library/jest-dom';
6
+ describe('Page heading', () => {
7
+ it('renders a heading role element', () => {
8
+ render(_jsx(PageHeading, { children: "Breaking news" }));
9
+ const pageHeading = screen.getByRole('heading', {
10
+ name: 'Breaking news',
11
+ });
12
+ expect(pageHeading).toBeInTheDocument();
13
+ expect(pageHeading).toBeVisible();
14
+ });
15
+ it('renders a design system BEM class name', () => {
16
+ const { container } = render(_jsx(PageHeading, {}));
17
+ const component = container.querySelector(':only-child');
18
+ expect(component).toHaveClass('ams-page-heading');
19
+ });
20
+ it('renders an extra class name', () => {
21
+ const { container } = render(_jsx(PageHeading, { className: "extra" }));
22
+ const component = container.querySelector(':only-child');
23
+ expect(component).toHaveClass('ams-page-heading extra');
24
+ });
25
+ it('renders the class name for inverse color', () => {
26
+ render(_jsx(PageHeading, { color: "inverse", children: "Titel" }));
27
+ const pageHeading = screen.getByRole('heading', { name: 'Titel' });
28
+ expect(pageHeading).toHaveClass('ams-page-heading--inverse');
29
+ });
30
+ it('supports ForwardRef in React', () => {
31
+ const ref = createRef();
32
+ const { container } = render(_jsx(PageHeading, { ref: ref }));
33
+ const component = container.querySelector(':only-child');
34
+ expect(ref.current).toBe(component);
35
+ });
36
+ });
@@ -0,0 +1,2 @@
1
+ export { PageHeading } from './PageHeading';
2
+ export type { PageHeadingProps } from './PageHeading';
@@ -0,0 +1 @@
1
+ export { PageHeading } from './PageHeading';
@@ -0,0 +1,7 @@
1
+ import { PaginationProps } from './Pagination';
2
+ type LinkItemProps = Pick<PaginationProps, 'linkComponent' | 'linkTemplate'> & {
3
+ currentPage: PaginationProps['page'];
4
+ pageNumber: number;
5
+ };
6
+ export declare const LinkItem: ({ currentPage, linkComponent, linkTemplate, pageNumber }: LinkItemProps) => import("react/jsx-runtime").JSX.Element | null;
7
+ export {};
@@ -0,0 +1,7 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ export const LinkItem = ({ currentPage, linkComponent, linkTemplate, pageNumber }) => {
3
+ if (!linkComponent)
4
+ return null;
5
+ const Link = linkComponent;
6
+ return (_jsx("li", { children: _jsxs(Link, { "aria-current": pageNumber === currentPage ? 'page' : undefined, className: "ams-pagination__link", href: linkTemplate(pageNumber), children: [_jsx("span", { className: "ams-visually-hidden", children: pageNumber === currentPage ? `Pagina ${pageNumber}` : `Ga naar pagina ${pageNumber}` }), _jsx("span", { "aria-hidden": true, children: pageNumber })] }) }));
7
+ };
@@ -0,0 +1,59 @@
1
+ /**
2
+ * @license EUPL-1.2+
3
+ * Copyright Gemeente Amsterdam
4
+ */
5
+ import type { AnchorHTMLAttributes, ComponentType, HTMLAttributes } from 'react';
6
+ export type PaginationProps = {
7
+ /** The React component to use for the links. */
8
+ linkComponent?: ComponentType<AnchorHTMLAttributes<HTMLAnchorElement>>;
9
+ /** The template used to construct the link hrefs. */
10
+ linkTemplate: (page: number) => string;
11
+ /** The maximum amount of pages shown. Minimum value: 5. */
12
+ maxVisiblePages?: number;
13
+ /** The visible label for the link to the next page. */
14
+ nextLabel?: string;
15
+ /** The accessible name for the link to the next page. */
16
+ nextVisuallyHiddenLabel?: string;
17
+ /** The current page number. */
18
+ page?: number;
19
+ /** The visible label for the link to the previous page. */
20
+ previousLabel?: string;
21
+ /** The accessible name for the link to the previous page. */
22
+ previousVisuallyHiddenLabel?: string;
23
+ /** The total amount of pages. */
24
+ totalPages: number;
25
+ /** The accessible name for the Pagination component. */
26
+ visuallyHiddenLabel?: string;
27
+ /**
28
+ * Connects the component with an internal element that defines its accessible name.
29
+ * Note: must be unique for the page.
30
+ */
31
+ visuallyHiddenLabelId?: string;
32
+ } & HTMLAttributes<HTMLElement>;
33
+ export declare const Pagination: import("react").ForwardRefExoticComponent<{
34
+ /** The React component to use for the links. */
35
+ linkComponent?: ComponentType<AnchorHTMLAttributes<HTMLAnchorElement>>;
36
+ /** The template used to construct the link hrefs. */
37
+ linkTemplate: (page: number) => string;
38
+ /** The maximum amount of pages shown. Minimum value: 5. */
39
+ maxVisiblePages?: number;
40
+ /** The visible label for the link to the next page. */
41
+ nextLabel?: string;
42
+ /** The accessible name for the link to the next page. */
43
+ nextVisuallyHiddenLabel?: string;
44
+ /** The current page number. */
45
+ page?: number;
46
+ /** The visible label for the link to the previous page. */
47
+ previousLabel?: string;
48
+ /** The accessible name for the link to the previous page. */
49
+ previousVisuallyHiddenLabel?: string;
50
+ /** The total amount of pages. */
51
+ totalPages: number;
52
+ /** The accessible name for the Pagination component. */
53
+ visuallyHiddenLabel?: string;
54
+ /**
55
+ * Connects the component with an internal element that defines its accessible name.
56
+ * Note: must be unique for the page.
57
+ */
58
+ visuallyHiddenLabelId?: string;
59
+ } & HTMLAttributes<HTMLElement> & import("react").RefAttributes<HTMLElement>>;
@@ -0,0 +1,23 @@
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 { ChevronLeftIcon, ChevronRightIcon } from '@amsterdam/design-system-react-icons';
7
+ import clsx from 'clsx';
8
+ import { forwardRef } from 'react';
9
+ import { LinkItem } from './LinkItem';
10
+ import { Spacer } from './Spacer';
11
+ import { getRange } from './getRange';
12
+ import { Icon } from '../Icon/Icon';
13
+ export const Pagination = forwardRef(({ className, linkComponent = (props) => _jsx("a", { ...props }), linkTemplate, maxVisiblePages = 7, nextLabel = 'volgende', nextVisuallyHiddenLabel = 'Volgende pagina', page = 1, previousLabel = 'vorige', previousVisuallyHiddenLabel = 'Vorige pagina', totalPages, visuallyHiddenLabel = 'Paginering', visuallyHiddenLabelId = 'ams-pagination-a11y-label', ...restProps }, ref) => {
14
+ // Don't show pagination if you only have one page
15
+ if (totalPages <= 1) {
16
+ return null;
17
+ }
18
+ const Link = linkComponent;
19
+ // Get array of page numbers and / or spacers
20
+ const range = getRange(page, totalPages, maxVisiblePages);
21
+ return (_jsxs("nav", { ...restProps, "aria-labelledby": visuallyHiddenLabelId, className: clsx('ams-pagination', className), ref: ref, children: [_jsx("span", { className: "ams-visually-hidden", id: visuallyHiddenLabelId, children: visuallyHiddenLabel }), page !== 1 && (_jsxs(Link, { className: "ams-pagination__link", href: linkTemplate(page - 1), rel: "prev", children: [_jsx(Icon, { svg: ChevronLeftIcon }), _jsx("span", { className: "ams-visually-hidden", children: previousVisuallyHiddenLabel }), _jsx("span", { "aria-hidden": true, children: previousLabel })] })), _jsx("ol", { className: "ams-pagination__list", children: range.map((pageNumberOrSpacer) => typeof pageNumberOrSpacer === 'number' ? (_jsx(LinkItem, { currentPage: page, linkComponent: linkComponent, linkTemplate: linkTemplate, pageNumber: pageNumberOrSpacer }, pageNumberOrSpacer)) : (_jsx(Spacer, {}, pageNumberOrSpacer))) }), page !== totalPages && (_jsxs(Link, { className: "ams-pagination__link", href: linkTemplate(page + 1), rel: "next", children: [_jsx("span", { className: "ams-visually-hidden", children: nextVisuallyHiddenLabel }), _jsx("span", { "aria-hidden": true, children: nextLabel }), _jsx(Icon, { svg: ChevronRightIcon })] }))] }));
22
+ });
23
+ Pagination.displayName = 'Pagination';
@@ -0,0 +1 @@
1
+ import '@testing-library/jest-dom';