@moduk/frontend 1.2.1 → 1.3.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 (289) hide show
  1. package/assets/images/govuk-crest-2x.png +0 -0
  2. package/assets/images/govuk-crest.png +0 -0
  3. package/assets/svg/moduk-header-logo.svg +7 -0
  4. package/client/index.d.ts +2 -0
  5. package/client/index.d.ts.map +1 -0
  6. package/client/moduk-frontend.mjs +1 -0
  7. package/client/moduk-frontend.umd.js +2 -0
  8. package/client/moduk-frontend.umd.js.map +1 -0
  9. package/css/index.css +1 -0
  10. package/dist/nunjucks/moduk/components/table/__examples__/with-large-caption.njk +9 -9
  11. package/lib/index.d.ts +2 -0
  12. package/lib/index.d.ts.map +1 -0
  13. package/lib/index.js +18 -0
  14. package/lib/index.js.map +1 -0
  15. package/lib/utils.d.ts +25 -0
  16. package/lib/utils.d.ts.map +1 -0
  17. package/lib/utils.js +111 -0
  18. package/lib/utils.js.map +1 -0
  19. package/nunjucks/moduk/components/accordion/__examples__/default.njk +39 -0
  20. package/nunjucks/moduk/components/accordion/__examples__/with-custom-text.njk +45 -0
  21. package/nunjucks/moduk/components/accordion/__examples__/with-expanded-items.njk +41 -0
  22. package/nunjucks/moduk/components/accordion/__examples__/with-h3-headings.njk +40 -0
  23. package/nunjucks/moduk/components/accordion/__examples__/with-remember-expanded-off.njk +40 -0
  24. package/nunjucks/moduk/components/accordion/__examples__/with-summary-lines.njk +122 -0
  25. package/nunjucks/moduk/components/accordion/__examples__/with-text-items.njk +41 -0
  26. package/nunjucks/moduk/components/accordion/macro.njk +5 -0
  27. package/nunjucks/moduk/components/back-link/__examples__/default.njk +6 -0
  28. package/nunjucks/moduk/components/back-link/macro.njk +5 -0
  29. package/nunjucks/moduk/components/breadcrumbs/__examples__/default.njk +18 -0
  30. package/nunjucks/moduk/components/breadcrumbs/macro.njk +5 -0
  31. package/nunjucks/moduk/components/button/__examples__/default.njk +5 -0
  32. package/nunjucks/moduk/components/button/__examples__/disabled.njk +6 -0
  33. package/nunjucks/moduk/components/button/__examples__/group-link.njk +9 -0
  34. package/nunjucks/moduk/components/button/__examples__/grouping.njk +12 -0
  35. package/nunjucks/moduk/components/button/__examples__/prevent-double-click.njk +30 -0
  36. package/nunjucks/moduk/components/button/__examples__/secondary.njk +6 -0
  37. package/nunjucks/moduk/components/button/__examples__/start.njk +7 -0
  38. package/nunjucks/moduk/components/button/__examples__/warning.njk +6 -0
  39. package/nunjucks/moduk/components/button/macro.njk +5 -0
  40. package/nunjucks/moduk/components/character-count/__examples__/default.njk +15 -0
  41. package/nunjucks/moduk/components/character-count/__examples__/not-as-page-heading.njk +10 -0
  42. package/nunjucks/moduk/components/character-count/__examples__/with-error-message.njk +19 -0
  43. package/nunjucks/moduk/components/character-count/__examples__/with-threshold.njk +14 -0
  44. package/nunjucks/moduk/components/character-count/__examples__/word-count.njk +12 -0
  45. package/nunjucks/moduk/components/character-count/macro.njk +5 -0
  46. package/nunjucks/moduk/components/checkboxes/__examples__/default.njk +37 -0
  47. package/nunjucks/moduk/components/checkboxes/__examples__/not-as-page-heading.njk +35 -0
  48. package/nunjucks/moduk/components/checkboxes/__examples__/small.njk +31 -0
  49. package/nunjucks/moduk/components/checkboxes/__examples__/with-conditional-reveal.njk +80 -0
  50. package/nunjucks/moduk/components/checkboxes/__examples__/with-error-message.njk +40 -0
  51. package/nunjucks/moduk/components/checkboxes/__examples__/with-item-hint.njk +32 -0
  52. package/nunjucks/moduk/components/checkboxes/__examples__/with-none-option.njk +45 -0
  53. package/nunjucks/moduk/components/checkboxes/macro.njk +5 -0
  54. package/nunjucks/moduk/components/cookie-banner/__examples__/accepted.njk +47 -0
  55. package/nunjucks/moduk/components/cookie-banner/__examples__/default.njk +34 -0
  56. package/nunjucks/moduk/components/cookie-banner/__examples__/rejected.njk +47 -0
  57. package/nunjucks/moduk/components/cookie-banner/macro.njk +5 -0
  58. package/nunjucks/moduk/components/date-input/__examples__/default.njk +16 -0
  59. package/nunjucks/moduk/components/date-input/__examples__/not-as-page-heading.njk +14 -0
  60. package/nunjucks/moduk/components/date-input/__examples__/with-date-part-error.njk +35 -0
  61. package/nunjucks/moduk/components/date-input/__examples__/with-whole-date-error.njk +36 -0
  62. package/nunjucks/moduk/components/date-input/macro.njk +5 -0
  63. package/nunjucks/moduk/components/details/__examples__/default.njk +6 -0
  64. package/nunjucks/moduk/components/details/__examples__/open.njk +7 -0
  65. package/nunjucks/moduk/components/details/macro.njk +11 -0
  66. package/nunjucks/moduk/components/error-message/__examples__/default.njk +5 -0
  67. package/nunjucks/moduk/components/error-message/macro.njk +5 -0
  68. package/nunjucks/moduk/components/error-summary/__examples__/default.njk +15 -0
  69. package/nunjucks/moduk/components/error-summary/__examples__/with-description-and-error-list.njk +16 -0
  70. package/nunjucks/moduk/components/error-summary/__examples__/with-error-linked-to-checkbox.njk +54 -0
  71. package/nunjucks/moduk/components/error-summary/__examples__/with-error-linked-to-date-part.njk +45 -0
  72. package/nunjucks/moduk/components/error-summary/macro.njk +11 -0
  73. package/nunjucks/moduk/components/fieldset/__examples__/default.njk +45 -0
  74. package/nunjucks/moduk/components/fieldset/macro.njk +11 -0
  75. package/nunjucks/moduk/components/file-upload/__examples__/default.njk +9 -0
  76. package/nunjucks/moduk/components/file-upload/__examples__/with-error.njk +12 -0
  77. package/nunjucks/moduk/components/file-upload/macro.njk +5 -0
  78. package/nunjucks/moduk/components/footer/__examples__/default.njk +3 -0
  79. package/nunjucks/moduk/components/footer/__examples__/with-links.njk +20 -0
  80. package/nunjucks/moduk/components/footer/__examples__/with-secondary-navigation-and-links.njk +72 -0
  81. package/nunjucks/moduk/components/footer/__examples__/with-secondary-navigation.njk +55 -0
  82. package/nunjucks/moduk/components/footer/macro.njk +5 -0
  83. package/nunjucks/moduk/components/header/__examples__/default.njk +3 -0
  84. package/nunjucks/moduk/components/header/__examples__/with-service-name-and-navigation.njk +26 -0
  85. package/nunjucks/moduk/components/header/__examples__/with-service-name-and-no-service-url.njk +6 -0
  86. package/nunjucks/moduk/components/header/__examples__/with-service-name.njk +7 -0
  87. package/nunjucks/moduk/components/header/macro.njk +62 -0
  88. package/nunjucks/moduk/components/input/__examples__/default.njk +11 -0
  89. package/nunjucks/moduk/components/input/__examples__/not-as-page-heading.njk +9 -0
  90. package/nunjucks/moduk/components/input/__examples__/with-error.njk +17 -0
  91. package/nunjucks/moduk/components/input/__examples__/with-fixed-width.njk +57 -0
  92. package/nunjucks/moduk/components/input/__examples__/with-fluid-width.njk +57 -0
  93. package/nunjucks/moduk/components/input/__examples__/with-hint.njk +14 -0
  94. package/nunjucks/moduk/components/input/__examples__/with-numeric.njk +17 -0
  95. package/nunjucks/moduk/components/input/__examples__/with-prefix-and-suffix-error.njk +22 -0
  96. package/nunjucks/moduk/components/input/__examples__/with-prefix-and-suffix.njk +19 -0
  97. package/nunjucks/moduk/components/input/__examples__/with-prefix.njk +16 -0
  98. package/nunjucks/moduk/components/input/__examples__/with-suffix.njk +16 -0
  99. package/nunjucks/moduk/components/input/macro.njk +5 -0
  100. package/nunjucks/moduk/components/inset-text/__examples__/default.njk +5 -0
  101. package/nunjucks/moduk/components/inset-text/macro.njk +11 -0
  102. package/nunjucks/moduk/components/notification-banner/__examples__/default.njk +5 -0
  103. package/nunjucks/moduk/components/notification-banner/__examples__/success.njk +13 -0
  104. package/nunjucks/moduk/components/notification-banner/__examples__/with-html.njk +12 -0
  105. package/nunjucks/moduk/components/notification-banner/macro.njk +11 -0
  106. package/nunjucks/moduk/components/pagination/__examples__/default.njk +25 -0
  107. package/nunjucks/moduk/components/pagination/__examples__/on-the-first-page.njk +22 -0
  108. package/nunjucks/moduk/components/pagination/__examples__/on-the-last-page.njk +22 -0
  109. package/nunjucks/moduk/components/pagination/__examples__/with-ellipses.njk +39 -0
  110. package/nunjucks/moduk/components/pagination/__examples__/with-link-labels.njk +12 -0
  111. package/nunjucks/moduk/components/pagination/__examples__/with-next-and-previous-only.njk +12 -0
  112. package/nunjucks/moduk/components/pagination/macro.njk +5 -0
  113. package/nunjucks/moduk/components/panel/__examples__/default.njk +6 -0
  114. package/nunjucks/moduk/components/panel/macro.njk +11 -0
  115. package/nunjucks/moduk/components/phase-banner/__examples__/beta.njk +8 -0
  116. package/nunjucks/moduk/components/phase-banner/__examples__/default.njk +12 -0
  117. package/nunjucks/moduk/components/phase-banner/__examples__/with-tag-override.njk +9 -0
  118. package/nunjucks/moduk/components/phase-banner/__examples__/with-text.njk +8 -0
  119. package/nunjucks/moduk/components/phase-banner/macro.njk +5 -0
  120. package/nunjucks/moduk/components/radios/__examples__/default.njk +30 -0
  121. package/nunjucks/moduk/components/radios/__examples__/inline.njk +26 -0
  122. package/nunjucks/moduk/components/radios/__examples__/not-as-page-heading.njk +29 -0
  123. package/nunjucks/moduk/components/radios/__examples__/small.njk +31 -0
  124. package/nunjucks/moduk/components/radios/__examples__/with-conditional-reveal.njk +80 -0
  125. package/nunjucks/moduk/components/radios/__examples__/with-divider-option.njk +29 -0
  126. package/nunjucks/moduk/components/radios/__examples__/with-error-message.njk +33 -0
  127. package/nunjucks/moduk/components/radios/__examples__/with-item-hint.njk +31 -0
  128. package/nunjucks/moduk/components/radios/macro.njk +5 -0
  129. package/nunjucks/moduk/components/select/__examples__/default.njk +28 -0
  130. package/nunjucks/moduk/components/select/__examples__/with-hint.njk +55 -0
  131. package/nunjucks/moduk/components/select/macro.njk +5 -0
  132. package/nunjucks/moduk/components/skip-link/__examples__/default.njk +11 -0
  133. package/nunjucks/moduk/components/skip-link/macro.njk +5 -0
  134. package/nunjucks/moduk/components/summary-list/__examples__/cards-with-action.njk +83 -0
  135. package/nunjucks/moduk/components/summary-list/__examples__/cards.njk +221 -0
  136. package/nunjucks/moduk/components/summary-list/__examples__/default.njk +74 -0
  137. package/nunjucks/moduk/components/summary-list/__examples__/with-no-actions.njk +38 -0
  138. package/nunjucks/moduk/components/summary-list/__examples__/with-no-border.njk +39 -0
  139. package/nunjucks/moduk/components/summary-list/macro.njk +5 -0
  140. package/nunjucks/moduk/components/table/__examples__/default.njk +41 -0
  141. package/nunjucks/moduk/components/table/__examples__/with-comparative-numbers.njk +61 -0
  142. package/nunjucks/moduk/components/table/__examples__/with-customised-column-widths.njk +56 -0
  143. package/nunjucks/moduk/components/table/__examples__/with-large-caption.njk +41 -0
  144. package/nunjucks/moduk/components/table/macro.njk +5 -0
  145. package/nunjucks/moduk/components/tabs/__examples__/default.njk +243 -0
  146. package/nunjucks/moduk/components/tabs/macro.njk +5 -0
  147. package/nunjucks/moduk/components/tag/__examples__/blue.njk +6 -0
  148. package/nunjucks/moduk/components/tag/__examples__/default.njk +5 -0
  149. package/nunjucks/moduk/components/tag/__examples__/green.njk +6 -0
  150. package/nunjucks/moduk/components/tag/__examples__/grey.njk +6 -0
  151. package/nunjucks/moduk/components/tag/__examples__/orange.njk +6 -0
  152. package/nunjucks/moduk/components/tag/__examples__/pink.njk +6 -0
  153. package/nunjucks/moduk/components/tag/__examples__/purple.njk +6 -0
  154. package/nunjucks/moduk/components/tag/__examples__/red.njk +6 -0
  155. package/nunjucks/moduk/components/tag/__examples__/turquoise.njk +6 -0
  156. package/nunjucks/moduk/components/tag/__examples__/yellow.njk +6 -0
  157. package/nunjucks/moduk/components/tag/macro.njk +5 -0
  158. package/nunjucks/moduk/components/textarea/__examples__/default.njk +14 -0
  159. package/nunjucks/moduk/components/textarea/__examples__/not-as-page-heading.njk +9 -0
  160. package/nunjucks/moduk/components/textarea/__examples__/with-custom-height.njk +15 -0
  161. package/nunjucks/moduk/components/textarea/__examples__/with-error.njk +17 -0
  162. package/nunjucks/moduk/components/textarea/macro.njk +5 -0
  163. package/nunjucks/moduk/components/warning-text/__examples__/default.njk +6 -0
  164. package/nunjucks/moduk/components/warning-text/macro.njk +5 -0
  165. package/package.json +36 -27
  166. package/react/MODUKBody/MODUKBody.d.ts +6 -0
  167. package/react/MODUKBody/MODUKBody.d.ts.map +1 -0
  168. package/react/accordion/Accordion.d.ts +22 -0
  169. package/react/accordion/Accordion.d.ts.map +1 -0
  170. package/react/accordion/AccordionContext.d.ts +7 -0
  171. package/react/accordion/AccordionContext.d.ts.map +1 -0
  172. package/react/accordion/AccordionHeadingTag.d.ts +2 -0
  173. package/react/accordion/AccordionHeadingTag.d.ts.map +1 -0
  174. package/react/accordion/AccordionItem.d.ts +12 -0
  175. package/react/accordion/AccordionItem.d.ts.map +1 -0
  176. package/react/accordion/AccordionItemIndexContext.d.ts +2 -0
  177. package/react/accordion/AccordionItemIndexContext.d.ts.map +1 -0
  178. package/react/accordion/index.d.ts +4 -0
  179. package/react/accordion/index.d.ts.map +1 -0
  180. package/react/back-link/BackLink.d.ts +13 -0
  181. package/react/back-link/BackLink.d.ts.map +1 -0
  182. package/react/esm/MODUKBody/MODUKBody.js +37 -0
  183. package/react/esm/accordion/Accordion.js +81 -0
  184. package/react/esm/accordion/AccordionContext.js +5 -0
  185. package/react/esm/accordion/AccordionHeadingTag.js +1 -0
  186. package/react/esm/accordion/AccordionItem.js +45 -0
  187. package/react/esm/accordion/AccordionItemIndexContext.js +2 -0
  188. package/react/esm/accordion/index.js +5 -0
  189. package/react/esm/back-link/BackLink.js +25 -0
  190. package/react/esm/header/Header.js +124 -0
  191. package/react/esm/header/HeaderNavigationItem.js +29 -0
  192. package/react/esm/header/HeaderNavigationLink.js +25 -0
  193. package/react/esm/header/index.js +3 -0
  194. package/react/esm/index.js +7 -0
  195. package/react/esm/internal/Link/Link.js +23 -0
  196. package/react/esm/internal/hooks/useMODUKComponent/index.js +1 -0
  197. package/react/esm/internal/hooks/useMODUKComponent/useMODUKComponent.js +39 -0
  198. package/react/esm/internal/hooks/usePrevious/index.js +1 -0
  199. package/react/esm/internal/hooks/usePrevious/usePrevious.js +8 -0
  200. package/react/esm/internal/test-utils/Root.js +33 -0
  201. package/react/esm/table/Table.js +13 -0
  202. package/react/esm/table/TableBody.js +24 -0
  203. package/react/esm/table/TableCaption.js +24 -0
  204. package/react/esm/table/TableCell.js +25 -0
  205. package/react/esm/table/TableColumnHeader.js +26 -0
  206. package/react/esm/table/TableHead.js +24 -0
  207. package/react/esm/table/TableRow.js +24 -0
  208. package/react/esm/table/TableRowHeader.js +25 -0
  209. package/react/esm/table/index.js +8 -0
  210. package/react/header/Header.d.ts +20 -0
  211. package/react/header/Header.d.ts.map +1 -0
  212. package/react/header/HeaderNavigationItem.d.ts +11 -0
  213. package/react/header/HeaderNavigationItem.d.ts.map +1 -0
  214. package/react/header/HeaderNavigationLink.d.ts +11 -0
  215. package/react/header/HeaderNavigationLink.d.ts.map +1 -0
  216. package/react/header/index.d.ts +4 -0
  217. package/react/header/index.d.ts.map +1 -0
  218. package/react/index.d.ts +6 -0
  219. package/react/index.d.ts.map +1 -0
  220. package/react/index.js +3 -0
  221. package/react/index.js.LICENSE.txt +28 -0
  222. package/react/index.js.map +1 -0
  223. package/react/internal/Link/Link.d.ts +14 -0
  224. package/react/internal/Link/Link.d.ts.map +1 -0
  225. package/react/internal/hooks/useMODUKComponent/index.d.ts +2 -0
  226. package/react/internal/hooks/useMODUKComponent/index.d.ts.map +1 -0
  227. package/react/internal/hooks/useMODUKComponent/useMODUKComponent.d.ts +10 -0
  228. package/react/internal/hooks/useMODUKComponent/useMODUKComponent.d.ts.map +1 -0
  229. package/react/internal/hooks/usePrevious/index.d.ts +2 -0
  230. package/react/internal/hooks/usePrevious/index.d.ts.map +1 -0
  231. package/react/internal/hooks/usePrevious/usePrevious.d.ts +2 -0
  232. package/react/internal/hooks/usePrevious/usePrevious.d.ts.map +1 -0
  233. package/react/internal/test-utils/Root.d.ts +8 -0
  234. package/react/internal/test-utils/Root.d.ts.map +1 -0
  235. package/react/table/Table.d.ts +41 -0
  236. package/react/table/Table.d.ts.map +1 -0
  237. package/react/table/TableBody.d.ts +9 -0
  238. package/react/table/TableBody.d.ts.map +1 -0
  239. package/react/table/TableCaption.d.ts +9 -0
  240. package/react/table/TableCaption.d.ts.map +1 -0
  241. package/react/table/TableCell.d.ts +11 -0
  242. package/react/table/TableCell.d.ts.map +1 -0
  243. package/react/table/TableColumnHeader.d.ts +11 -0
  244. package/react/table/TableColumnHeader.d.ts.map +1 -0
  245. package/react/table/TableHead.d.ts +9 -0
  246. package/react/table/TableHead.d.ts.map +1 -0
  247. package/react/table/TableRow.d.ts +9 -0
  248. package/react/table/TableRow.d.ts.map +1 -0
  249. package/react/table/TableRowHeader.d.ts +9 -0
  250. package/react/table/TableRowHeader.d.ts.map +1 -0
  251. package/react/table/index.d.ts +9 -0
  252. package/react/table/index.d.ts.map +1 -0
  253. package/src/react/header/__examples__/with-service-name-and-navigation.tsx +13 -5
  254. package/src/react/table/__examples__/default.tsx +38 -0
  255. package/src/react/table/__examples__/with-comparative-numbers.tsx +42 -0
  256. package/src/react/table/__examples__/with-customised-column-widths.tsx +42 -0
  257. package/src/react/table/__examples__/with-large-caption.tsx +38 -0
  258. package/dist/nunjucks/moduk/components/accordion/__tests__/macro.test.ts +0 -9
  259. package/dist/nunjucks/moduk/components/back-link/__tests__/macro.test.ts +0 -9
  260. package/dist/nunjucks/moduk/components/breadcrumbs/__tests__/macro.test.ts +0 -31
  261. package/dist/nunjucks/moduk/components/button/__tests__/macro.test.ts +0 -25
  262. package/dist/nunjucks/moduk/components/character-count/__tests__/macro.test.ts +0 -9
  263. package/dist/nunjucks/moduk/components/checkboxes/__tests__/macro.test.ts +0 -9
  264. package/dist/nunjucks/moduk/components/cookie-banner/__tests__/macro.test.ts +0 -10
  265. package/dist/nunjucks/moduk/components/date-input/__tests__/macro.test.ts +0 -9
  266. package/dist/nunjucks/moduk/components/details/__tests__/macro.test.ts +0 -35
  267. package/dist/nunjucks/moduk/components/error-message/__tests__/macro.test.ts +0 -9
  268. package/dist/nunjucks/moduk/components/error-summary/__tests__/macro.test.ts +0 -55
  269. package/dist/nunjucks/moduk/components/fieldset/__tests__/macro.test.ts +0 -41
  270. package/dist/nunjucks/moduk/components/file-upload/__tests__/macro.test.ts +0 -9
  271. package/dist/nunjucks/moduk/components/footer/__tests__/macro.test.ts +0 -15
  272. package/dist/nunjucks/moduk/components/header/__tests__/macro.test.ts +0 -25
  273. package/dist/nunjucks/moduk/components/input/__tests__/macro.test.ts +0 -22
  274. package/dist/nunjucks/moduk/components/inset-text/__tests__/macro.test.ts +0 -35
  275. package/dist/nunjucks/moduk/components/notification-banner/__tests__/macro.test.ts +0 -32
  276. package/dist/nunjucks/moduk/components/pagination/__tests__/macro.test.ts +0 -9
  277. package/dist/nunjucks/moduk/components/panel/__tests__/macro.test.ts +0 -35
  278. package/dist/nunjucks/moduk/components/phase-banner/__tests__/macro.test.ts +0 -24
  279. package/dist/nunjucks/moduk/components/radios/__tests__/macro.test.ts +0 -9
  280. package/dist/nunjucks/moduk/components/select/__tests__/macro.test.ts +0 -9
  281. package/dist/nunjucks/moduk/components/skip-link/__tests__/macro.test.ts +0 -9
  282. package/dist/nunjucks/moduk/components/summary-list/__tests__/macro.test.ts +0 -9
  283. package/dist/nunjucks/moduk/components/table/__tests__/macro.test.ts +0 -9
  284. package/dist/nunjucks/moduk/components/tabs/__tests__/macro.test.ts +0 -9
  285. package/dist/nunjucks/moduk/components/tag/__tests__/macro.test.ts +0 -32
  286. package/dist/nunjucks/moduk/components/textarea/__tests__/macro.test.ts +0 -9
  287. package/dist/nunjucks/moduk/components/warning-text/__tests__/macro.test.ts +0 -9
  288. package/src/css/__tests__/_colour-palette.test.scss +0 -42
  289. package/src/css/__tests__/index.test.ts +0 -17
@@ -1,55 +0,0 @@
1
- import { describe, expect, it } from 'vitest'
2
-
3
- import { render, renderFile } from '../../../../../test-utils'
4
-
5
- describe('error summary', async () => {
6
- it('renders the content when using the text property', () => {
7
- const element = renderFile('moduk/components/error-summary/__examples__/with-description-and-error-list.njk')
8
- expect(element).toHaveTextContent('There is a problem')
9
- })
10
-
11
- it('renders the error description when using the descriptionHtml property', () => {
12
- const element = render(`
13
- {% from "moduk/components/error-summary/macro.njk" import modukErrorSummary %}
14
-
15
- {{ modukErrorSummary({
16
- titleText: "There is a problem",
17
- descriptionHtml: "There have been some errors when trying to submit your application.",
18
- errorList: [
19
- {
20
- text: "The start date of the contract must include a year",
21
- href: "#incorect-date-format"
22
- },
23
- {
24
- text: "Enter your full name",
25
- href: "#full-name-input"
26
- }
27
- ]
28
- }) }}
29
- `)
30
- expect(element).toHaveTextContent('There have been some errors when trying to submit your application.')
31
- })
32
-
33
- it('renders the content when using a call block', () => {
34
- const element = render(`
35
- {% from "moduk/components/error-summary/macro.njk" import modukErrorSummary %}
36
-
37
- {% call modukErrorSummary({
38
- titleText: "There is a problem",
39
- errorList: [
40
- {
41
- text: "The start date of the contract must include a year",
42
- href: "#incorect-date-format"
43
- },
44
- {
45
- text: "Enter your full name",
46
- href: "#full-name-input"
47
- }
48
- ]
49
- }) %}
50
- There have been some errors<br> when trying to submit your application.
51
- {% endcall %}
52
- `)
53
- expect(element).toContainHTML('There have been some errors<br> when')
54
- })
55
- })
@@ -1,41 +0,0 @@
1
- import { describe, expect, it } from 'vitest'
2
-
3
- import { getByLabelText } from '@testing-library/dom'
4
- import { render, renderFile } from '../../../../../test-utils'
5
-
6
- describe('Fieldset', async () => {
7
- it('renders the content', () => {
8
- const element = renderFile('moduk/components/fieldset/__examples__/default.njk')
9
- expect(getByLabelText(element, 'Address line 1')).toBeInTheDocument()
10
- })
11
-
12
- it('renders the content when passed using the html property', () => {
13
- const element = render(`
14
- {% from "moduk/components/input/macro.njk" import modukInput %}
15
- {% from "moduk/components/fieldset/macro.njk" import modukFieldset %}
16
-
17
- {% set html %}
18
- {{ modukInput({
19
- label: {
20
- text: 'Address line 1'
21
- },
22
- id: "address-line-1",
23
- name: "address-line-1",
24
- autocomplete: "address-line1"
25
- }) }}
26
- {% endset %}
27
-
28
-
29
- {{ modukFieldset({
30
- legend: {
31
- text: "What is your address?",
32
- classes: "govuk-fieldset__legend--l",
33
- isPageHeading: true
34
- },
35
- html: html
36
- }) }}
37
- `)
38
-
39
- expect(getByLabelText(element, 'Address line 1')).toBeInTheDocument()
40
- })
41
- })
@@ -1,9 +0,0 @@
1
- import { describe, expect, it } from 'vitest'
2
-
3
- import { renderFile } from '../../../../../test-utils'
4
-
5
- describe('File upload', async () => {
6
- it('renders the content', () => {
7
- expect(() => renderFile('moduk/components/file-upload/__examples__/default.njk')).not.toThrowError()
8
- })
9
- })
@@ -1,15 +0,0 @@
1
- import { describe, expect, it } from 'vitest'
2
-
3
- import { render } from '../../../../../test-utils'
4
-
5
- describe('Footer', async () => {
6
- it('renders the content', () => {
7
- expect(() =>
8
- render(`
9
- {%- from "moduk/components/footer/macro.njk" import modukFooter -%}
10
-
11
- {{ modukFooter({ }) }}
12
- `)
13
- ).not.toThrowError()
14
- })
15
- })
@@ -1,25 +0,0 @@
1
- import { describe, expect, it } from 'vitest'
2
-
3
- import { render } from '../../../../../test-utils'
4
-
5
- describe('Header', async () => {
6
- it('renders the content', () => {
7
- expect(() =>
8
- render(`
9
- {%- from "moduk/components/header/macro.njk" import modukHeader -%}
10
-
11
- {{ modukHeader({ }) }}
12
- `)
13
- ).not.toThrowError()
14
- })
15
-
16
- it('renders the MOOUK svg logo', () => {
17
- const el = render(`
18
- {%- from "moduk/components/header/macro.njk" import modukHeader -%}
19
-
20
- {{ modukHeader({ }) }}
21
- `)
22
-
23
- expect(el.getElementsByTagName('svg')).toHaveLength(1)
24
- })
25
- })
@@ -1,22 +0,0 @@
1
- import { screen } from '@testing-library/dom'
2
- import { describe, expect, it } from 'vitest'
3
- import { renderFile } from '../../../../../test-utils'
4
-
5
- describe('Input', () => {
6
- it('renders the content', () => {
7
- expect(() => renderFile('moduk/components/input/__examples__/default.njk')).not.toThrowError()
8
- })
9
-
10
- it('renders the content with prefix and suffix', () => {
11
- const element = renderFile('moduk/components/input/__examples__/with-prefix-and-suffix.njk')
12
-
13
- expect(element.querySelector('.govuk-input__prefix')).toBeInTheDocument()
14
- expect(element.querySelector('.govuk-input__suffix')).toBeInTheDocument()
15
- })
16
-
17
- it('renders the content numeric inputmode', () => {
18
- renderFile('moduk/components/input/__examples__/with-numeric.njk')
19
-
20
- expect(screen.getByRole('textbox')).toHaveAttribute('inputmode', 'numeric')
21
- })
22
- })
@@ -1,35 +0,0 @@
1
- import { describe, expect, it } from 'vitest'
2
-
3
- import { render, renderFile } from '../../../../../test-utils'
4
-
5
- describe('Inset text', async () => {
6
- it('renders the content when using the text property', () => {
7
- const element = renderFile('moduk/components/inset-text/__examples__/default.njk')
8
- expect(element).toHaveTextContent('You’ll get confirmation')
9
- })
10
-
11
- it('renders the content when using the html property', () => {
12
- const element = render(`
13
- {% from "moduk/components/inset-text/macro.njk" import modukInsetText %}
14
-
15
- {{ modukInsetText({
16
- summaryText: "Help with organisation",
17
- html: "You’ll get confirmation that we have received your report within 5 working days."
18
- }) }}
19
- `)
20
- expect(element).toHaveTextContent('You’ll get confirmation')
21
- })
22
-
23
- it('renders the content when using a call block', () => {
24
- const element = render(`
25
- {% from "moduk/components/inset-text/macro.njk" import modukInsetText %}
26
-
27
- {% call modukInsetText({
28
- summaryText: "Help with organisation"
29
- }) %}
30
- You’ll get confirmation<br> that we have received your report within 5 working days.
31
- {% endcall %}
32
- `)
33
- expect(element).toContainHTML('You’ll get confirmation<br> that')
34
- })
35
- })
@@ -1,32 +0,0 @@
1
- import { describe, expect, it } from 'vitest'
2
-
3
- import { render, renderFile } from '../../../../../test-utils'
4
-
5
- describe('Notification banner', async () => {
6
- it('renders the content when using the text property', () => {
7
- const element = renderFile('moduk/components/notification-banner/__examples__/default.njk')
8
- expect(element).toHaveTextContent('There may be a delay')
9
- })
10
-
11
- it('renders the content when using the html property', () => {
12
- const element = render(`
13
- {% from "moduk/components/notification-banner/macro.njk" import modukNotificationBanner %}
14
-
15
- {{ modukNotificationBanner({
16
- html: "There may be a delay in processing your application because of the coronavirus outbreak."
17
- }) }}
18
- `)
19
- expect(element).toHaveTextContent('There may be a delay')
20
- })
21
-
22
- it('renders the content when using a call block', () => {
23
- const element = render(`
24
- {% from "moduk/components/notification-banner/macro.njk" import modukNotificationBanner %}
25
-
26
- {% call modukNotificationBanner({}) %}
27
- There may be a delay<br> in processing your application because of the coronavirus outbreak.
28
- {% endcall %}
29
- `)
30
- expect(element).toContainHTML('There may be a delay<br> in')
31
- })
32
- })
@@ -1,9 +0,0 @@
1
- import { describe, expect, it } from 'vitest'
2
-
3
- import { renderFile } from '../../../../../test-utils'
4
-
5
- describe('Pagination', async () => {
6
- it('renders the content', () => {
7
- expect(() => renderFile('moduk/components/pagination/__examples__/default.njk')).not.toThrowError()
8
- })
9
- })
@@ -1,35 +0,0 @@
1
- import { describe, expect, it } from 'vitest'
2
-
3
- import { render, renderFile } from '../../../../../test-utils'
4
-
5
- describe('Panel', async () => {
6
- it('renders the content using the html property', () => {
7
- const element = renderFile('moduk/components/panel/__examples__/default.njk')
8
- expect(element).toHaveTextContent('HDJ2123F')
9
- })
10
-
11
- it('renders the content when using the text property', () => {
12
- const element = render(`
13
- {% from "moduk/components/panel/macro.njk" import modukPanel %}
14
-
15
- {{ modukPanel({
16
- titleText: "Application complete",
17
- text: "Your reference number is HDJ2123F"
18
- }) }}
19
- `)
20
- expect(element).toHaveTextContent('HDJ2123F')
21
- })
22
-
23
- it('renders the content when using a call block', () => {
24
- const element = render(`
25
- {% from "moduk/components/panel/macro.njk" import modukPanel %}
26
-
27
- {% call modukPanel({
28
- titleText: "Application complete"
29
- }) %}
30
- Your reference number<br><strong>HDJ2123F</strong>
31
- {% endcall %}
32
- `)
33
- expect(element).toContainHTML('Your reference number<br><strong>HDJ2123F</strong>')
34
- })
35
- })
@@ -1,24 +0,0 @@
1
- import { describe, expect, it } from 'vitest'
2
-
3
- import { renderFile } from '../../../../../test-utils'
4
-
5
- describe('Phase Banner', () => {
6
- it('renders the content', () => {
7
- const element = renderFile('moduk/components/phase-banner/__examples__/default.njk')
8
- expect(element.querySelector('.govuk-tag')).toHaveClass('moduk-tag--default')
9
- expect(element.querySelector('.govuk-tag')).toHaveTextContent('alpha')
10
- expect(element).toHaveClass('custom-class')
11
- expect(element).toHaveAttribute('data-testid', 'phase-banner')
12
- })
13
-
14
- it('overrides the tag component class name', () => {
15
- const element = renderFile('moduk/components/phase-banner/__examples__/with-tag-override.njk')
16
- expect(element.querySelector('.govuk-tag')).toHaveClass('govuk-tag--grey')
17
- expect(element.querySelector('.govuk-tag')).not.toHaveClass('moduk-tag--default')
18
- })
19
-
20
- it('overrides the text', () => {
21
- const element = renderFile('moduk/components/phase-banner/__examples__/with-text.njk')
22
- expect(element).toHaveTextContent('This is a new service')
23
- })
24
- })
@@ -1,9 +0,0 @@
1
- import { describe, expect, it } from 'vitest'
2
-
3
- import { renderFile } from '../../../../../test-utils'
4
-
5
- describe('Radios', async () => {
6
- it('renders the content', () => {
7
- expect(() => renderFile('moduk/components/radios/__examples__/default.njk')).not.toThrowError()
8
- })
9
- })
@@ -1,9 +0,0 @@
1
- import { describe, expect, it } from 'vitest'
2
-
3
- import { renderFile } from '../../../../../test-utils'
4
-
5
- describe('Select', async () => {
6
- it('renders the content', () => {
7
- expect(() => renderFile('moduk/components/select/__examples__/default.njk')).not.toThrowError()
8
- })
9
- })
@@ -1,9 +0,0 @@
1
- import { describe, expect, it } from 'vitest'
2
-
3
- import { renderFile } from '../../../../../test-utils'
4
-
5
- describe('Skip link', async () => {
6
- it('renders the content', () => {
7
- expect(() => renderFile('moduk/components/skip-link/__examples__/default.njk')).not.toThrowError()
8
- })
9
- })
@@ -1,9 +0,0 @@
1
- import { describe, expect, it } from 'vitest'
2
-
3
- import { renderFile } from '../../../../../test-utils'
4
-
5
- describe('Summary list', async () => {
6
- it('renders the content', () => {
7
- expect(() => renderFile('moduk/components/summary-list/__examples__/default.njk')).not.toThrowError()
8
- })
9
- })
@@ -1,9 +0,0 @@
1
- import { describe, expect, it } from 'vitest'
2
-
3
- import { renderFile } from '../../../../../test-utils'
4
-
5
- describe('Table', async () => {
6
- it('renders the content', () => {
7
- expect(() => renderFile('moduk/components/table/__examples__/default.njk')).not.toThrowError()
8
- })
9
- })
@@ -1,9 +0,0 @@
1
- import { describe, expect, it } from 'vitest'
2
-
3
- import { renderFile } from '../../../../../test-utils'
4
-
5
- describe('Tabs', async () => {
6
- it('renders the content', () => {
7
- expect(() => renderFile('moduk/components/tabs/__examples__/default.njk')).not.toThrowError()
8
- })
9
- })
@@ -1,32 +0,0 @@
1
- import { describe, expect, it } from 'vitest'
2
-
3
- import { render } from '../../../../../test-utils'
4
-
5
- describe('Tag', async () => {
6
- it('adds the moduk-tag--default CSS class and renders the content', () => {
7
- const element = render(`
8
- {%- from "moduk/components/tag/macro.njk" import modukTag -%}
9
-
10
- {{ modukTag({
11
- text: "Completed"
12
- }) }}
13
- `)
14
-
15
- expect(element).toHaveClass('moduk-tag--default')
16
- expect(element).toHaveTextContent('Completed')
17
- })
18
-
19
- it('adds a modifier CSS class when specified and omits moduk-tag--default', () => {
20
- const element = render(`
21
- {%- from "moduk/components/tag/macro.njk" import modukTag -%}
22
-
23
- {{ modukTag({
24
- text: "Inactive",
25
- classes: "govuk-tag--grey"
26
- }) }}
27
- `)
28
-
29
- expect(element).toHaveClass('govuk-tag--grey')
30
- expect(element).not.toHaveClass('moduk-tag--default')
31
- })
32
- })
@@ -1,9 +0,0 @@
1
- import { describe, expect, it } from 'vitest'
2
-
3
- import { renderFile } from '../../../../../test-utils'
4
-
5
- describe('Textarea', async () => {
6
- it('renders the content', () => {
7
- expect(() => renderFile('moduk/components/textarea/__examples__/default.njk')).not.toThrowError()
8
- })
9
- })
@@ -1,9 +0,0 @@
1
- import { describe, expect, it } from 'vitest'
2
-
3
- import { renderFile } from '../../../../../test-utils'
4
-
5
- describe('Warning text', async () => {
6
- it('renders the content', () => {
7
- expect(() => renderFile('moduk/components/warning-text/__examples__/default.njk')).not.toThrowError()
8
- })
9
- })
@@ -1,42 +0,0 @@
1
- @use 'sass-true' as test;
2
- @use '../colour-palette' as moduk;
3
-
4
- @include test.describe('moduk-colour') {
5
- @include test.it('returns untinted colours') {
6
- @include test.assert-equal(moduk.moduk-colour('dark-purple'), #532a45);
7
- @include test.assert-equal(moduk.moduk-colour('dark-grey'), #323e48);
8
- @include test.assert-equal(moduk.moduk-colour('dark-blue'), #13284c);
9
- @include test.assert-equal(moduk.moduk-colour('dark-green'), #153e35);
10
- @include test.assert-equal(moduk.moduk-colour('dark-yellow'), #f6a800);
11
- @include test.assert-equal(moduk.moduk-colour('dark-orange'), #e0592b);
12
- @include test.assert-equal(moduk.moduk-colour('dark-pink'), #8e1537);
13
- @include test.assert-equal(moduk.moduk-colour('muted-purple'), #94368d);
14
- @include test.assert-equal(moduk.moduk-colour('muted-grey'), #7b98ac);
15
- @include test.assert-equal(moduk.moduk-colour('muted-blue'), #4298cc);
16
- @include test.assert-equal(moduk.moduk-colour('muted-green'), #00945f);
17
- @include test.assert-equal(moduk.moduk-colour('muted-yellow'), #ffc845);
18
- @include test.assert-equal(moduk.moduk-colour('muted-orange'), #f28b00);
19
- @include test.assert-equal(moduk.moduk-colour('muted-pink'), #fa7699);
20
- @include test.assert-equal(moduk.moduk-colour('bright-purple'), #ab92e1);
21
- @include test.assert-equal(moduk.moduk-colour('bright-grey'), #becdd6);
22
- @include test.assert-equal(moduk.moduk-colour('bright-blue'), #3db5e6);
23
- @include test.assert-equal(moduk.moduk-colour('bright-green'), #00ce7d);
24
- @include test.assert-equal(moduk.moduk-colour('bright-yellow'), #ffc600);
25
- @include test.assert-equal(moduk.moduk-colour('bright-orange'), #ff8200);
26
- @include test.assert-equal(moduk.moduk-colour('bright-pink'), #f087cf);
27
- @include test.assert-equal(moduk.moduk-colour('light-maroon'), #643f58);
28
- @include test.assert-equal(moduk.moduk-colour('maroon'), #532a45);
29
- @include test.assert-equal(moduk.moduk-colour('dark-maroon'), #4b263e);
30
- }
31
-
32
- @include test.it('returns tinted colours') {
33
- @include test.assert-equal(moduk.moduk-colour('dark-purple', 80), #75556a);
34
- @include test.assert-equal(moduk.moduk-colour('dark-purple', 60), #987f8f);
35
- @include test.assert-equal(moduk.moduk-colour('dark-purple', 40), #baaab5);
36
- @include test.assert-equal(moduk.moduk-colour('dark-purple', 20), #ddd4da);
37
- @include test.assert-equal(moduk.moduk-colour('dark-grey', 80), #5b656d);
38
- @include test.assert-equal(moduk.moduk-colour('dark-grey', 60), #848b91);
39
- @include test.assert-equal(moduk.moduk-colour('dark-grey', 40), #adb2b6);
40
- @include test.assert-equal(moduk.moduk-colour('dark-grey', 20), #d6d8da);
41
- }
42
- }
@@ -1,17 +0,0 @@
1
- // @vitest-environment node
2
-
3
- import { globSync } from 'glob'
4
- import { join } from 'node:path'
5
- import sassTrue from 'sass-true'
6
- import { describe, it } from 'vitest'
7
-
8
- globSync(join(__dirname, '**/*.test.scss'), { windowsPathsNoEscape: true }).forEach((filePath) => {
9
- sassTrue.runSass(
10
- { describe, it },
11
- filePath,
12
- {
13
- loadPaths: ['node_modules'],
14
- quietDeps: true,
15
- },
16
- )
17
- })