govuk_publishing_components 9.3.6 → 9.4.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (261) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +13 -0
  3. data/app/assets/stylesheets/component_guide/application.scss +10 -0
  4. data/app/assets/stylesheets/govuk_publishing_components/_all_components.scss +1 -0
  5. data/app/assets/stylesheets/govuk_publishing_components/admin_styles.scss +13 -0
  6. data/app/assets/stylesheets/govuk_publishing_components/components/_highlight-boxes.scss +66 -0
  7. data/app/assets/stylesheets/govuk_publishing_components/components/_layout-footer.scss +1 -0
  8. data/app/assets/stylesheets/govuk_publishing_components/components/_layout-for-admin.scss +1 -0
  9. data/app/models/govuk_publishing_components/component_doc.rb +12 -0
  10. data/app/views/govuk_publishing_components/component_guide/component_doc/_preview.html.erb +7 -5
  11. data/app/views/govuk_publishing_components/component_guide/show.html.erb +22 -0
  12. data/app/views/govuk_publishing_components/components/_highlight_boxes.html.erb +39 -0
  13. data/app/views/govuk_publishing_components/components/_layout_footer.html.erb +26 -0
  14. data/app/views/govuk_publishing_components/components/_layout_for_admin.html.erb +10 -0
  15. data/app/views/govuk_publishing_components/components/docs/highlight_boxes.yml +142 -0
  16. data/app/views/govuk_publishing_components/components/docs/layout_footer.yml +12 -0
  17. data/app/views/govuk_publishing_components/components/docs/layout_for_admin.yml +28 -0
  18. data/app/views/govuk_publishing_components/components/docs/metadata.yml +1 -0
  19. data/app/views/layouts/govuk_publishing_components/application.html.erb +5 -0
  20. data/config/initializers/assets.rb +12 -0
  21. data/lib/govuk_publishing_components.rb +1 -0
  22. data/lib/govuk_publishing_components/presenters/highlight_boxes_helper.rb +13 -0
  23. data/lib/govuk_publishing_components/presenters/meta_tags.rb +1 -0
  24. data/lib/govuk_publishing_components/version.rb +1 -1
  25. data/node_modules/govuk-frontend/README.md +96 -0
  26. data/node_modules/govuk-frontend/all-ie8.scss +6 -0
  27. data/node_modules/govuk-frontend/all.js +1720 -0
  28. data/node_modules/govuk-frontend/all.scss +11 -0
  29. data/node_modules/govuk-frontend/assets/fonts/bold-a2452cb66f-v1.woff2 +0 -0
  30. data/node_modules/govuk-frontend/assets/fonts/bold-f38c792ac2-v1.woff +0 -0
  31. data/node_modules/govuk-frontend/assets/fonts/bold-fb2676462a-v1.eot +0 -0
  32. data/node_modules/govuk-frontend/assets/fonts/bold-tabular-357fdfbcc3-v1.eot +0 -0
  33. data/node_modules/govuk-frontend/assets/fonts/bold-tabular-784c21afb8-v1.woff +0 -0
  34. data/node_modules/govuk-frontend/assets/fonts/bold-tabular-b89238d840-v1.woff2 +0 -0
  35. data/node_modules/govuk-frontend/assets/fonts/light-2c037cf7e1-v1.eot +0 -0
  36. data/node_modules/govuk-frontend/assets/fonts/light-458f8ea81c-v1.woff +0 -0
  37. data/node_modules/govuk-frontend/assets/fonts/light-f38ad40456-v1.woff2 +0 -0
  38. data/node_modules/govuk-frontend/assets/fonts/light-tabular-498ea8ffe2-v1.eot +0 -0
  39. data/node_modules/govuk-frontend/assets/fonts/light-tabular-62cc6f0a28-v1.woff +0 -0
  40. data/node_modules/govuk-frontend/assets/fonts/light-tabular-851b10ccdd-v1.woff2 +0 -0
  41. data/node_modules/govuk-frontend/assets/images/favicon.ico +0 -0
  42. data/node_modules/govuk-frontend/assets/images/govuk-apple-touch-icon-152x152.png +0 -0
  43. data/node_modules/govuk-frontend/assets/images/govuk-apple-touch-icon-167x167.png +0 -0
  44. data/node_modules/govuk-frontend/assets/images/govuk-apple-touch-icon-180x180.png +0 -0
  45. data/node_modules/govuk-frontend/assets/images/govuk-apple-touch-icon.png +0 -0
  46. data/node_modules/govuk-frontend/assets/images/govuk-crest-2x.png +0 -0
  47. data/node_modules/govuk-frontend/assets/images/govuk-crest.png +0 -0
  48. data/node_modules/govuk-frontend/assets/images/govuk-logotype-crown.png +0 -0
  49. data/node_modules/govuk-frontend/assets/images/govuk-mask-icon.svg +7 -0
  50. data/node_modules/govuk-frontend/assets/images/govuk-opengraph-image.png +0 -0
  51. data/node_modules/govuk-frontend/assets/images/icon-arrow-left.png +0 -0
  52. data/node_modules/govuk-frontend/assets/images/icon-important.png +0 -0
  53. data/node_modules/govuk-frontend/assets/images/icon-pointer-2x.png +0 -0
  54. data/node_modules/govuk-frontend/assets/images/icon-pointer.png +0 -0
  55. data/node_modules/govuk-frontend/common.js +39 -0
  56. data/node_modules/govuk-frontend/components/_all.scss +26 -0
  57. data/node_modules/govuk-frontend/components/back-link/README.md +142 -0
  58. data/node_modules/govuk-frontend/components/back-link/_back-link.scss +54 -0
  59. data/node_modules/govuk-frontend/components/back-link/back-link.njk +3 -0
  60. data/node_modules/govuk-frontend/components/back-link/macro.njk +3 -0
  61. data/node_modules/govuk-frontend/components/back-link/template.njk +2 -0
  62. data/node_modules/govuk-frontend/components/breadcrumbs/README.md +335 -0
  63. data/node_modules/govuk-frontend/components/breadcrumbs/_breadcrumbs.scss +119 -0
  64. data/node_modules/govuk-frontend/components/breadcrumbs/breadcrumbs.njk +14 -0
  65. data/node_modules/govuk-frontend/components/breadcrumbs/macro.njk +3 -0
  66. data/node_modules/govuk-frontend/components/breadcrumbs/template.njk +13 -0
  67. data/node_modules/govuk-frontend/components/button/README.md +319 -0
  68. data/node_modules/govuk-frontend/components/button/_button.scss +185 -0
  69. data/node_modules/govuk-frontend/components/button/button.js +548 -0
  70. data/node_modules/govuk-frontend/components/button/button.njk +3 -0
  71. data/node_modules/govuk-frontend/components/button/macro.njk +3 -0
  72. data/node_modules/govuk-frontend/components/button/template.njk +35 -0
  73. data/node_modules/govuk-frontend/components/checkboxes/README.md +782 -0
  74. data/node_modules/govuk-frontend/components/checkboxes/_checkboxes.scss +151 -0
  75. data/node_modules/govuk-frontend/components/checkboxes/checkboxes.js +730 -0
  76. data/node_modules/govuk-frontend/components/checkboxes/checkboxes.njk +27 -0
  77. data/node_modules/govuk-frontend/components/checkboxes/macro.njk +3 -0
  78. data/node_modules/govuk-frontend/components/checkboxes/template.njk +86 -0
  79. data/node_modules/govuk-frontend/components/date-input/README.md +640 -0
  80. data/node_modules/govuk-frontend/components/date-input/_date-input.scss +35 -0
  81. data/node_modules/govuk-frontend/components/date-input/date-input.njk +23 -0
  82. data/node_modules/govuk-frontend/components/date-input/macro.njk +3 -0
  83. data/node_modules/govuk-frontend/components/date-input/template.njk +76 -0
  84. data/node_modules/govuk-frontend/components/details/README.md +237 -0
  85. data/node_modules/govuk-frontend/components/details/_details.scss +86 -0
  86. data/node_modules/govuk-frontend/components/details/details.js +836 -0
  87. data/node_modules/govuk-frontend/components/details/details.njk +7 -0
  88. data/node_modules/govuk-frontend/components/details/implementation.md +43 -0
  89. data/node_modules/govuk-frontend/components/details/macro.njk +3 -0
  90. data/node_modules/govuk-frontend/components/details/template.njk +10 -0
  91. data/node_modules/govuk-frontend/components/error-message/README.md +143 -0
  92. data/node_modules/govuk-frontend/components/error-message/_error-message.scss +15 -0
  93. data/node_modules/govuk-frontend/components/error-message/error-message.njk +7 -0
  94. data/node_modules/govuk-frontend/components/error-message/macro.njk +3 -0
  95. data/node_modules/govuk-frontend/components/error-message/template.njk +3 -0
  96. data/node_modules/govuk-frontend/components/error-summary/README.md +215 -0
  97. data/node_modules/govuk-frontend/components/error-summary/_error-summary.scss +68 -0
  98. data/node_modules/govuk-frontend/components/error-summary/error-summary.js +520 -0
  99. data/node_modules/govuk-frontend/components/error-summary/error-summary.njk +17 -0
  100. data/node_modules/govuk-frontend/components/error-summary/macro.njk +3 -0
  101. data/node_modules/govuk-frontend/components/error-summary/template.njk +25 -0
  102. data/node_modules/govuk-frontend/components/fieldset/README.md +213 -0
  103. data/node_modules/govuk-frontend/components/fieldset/_fieldset.scss +58 -0
  104. data/node_modules/govuk-frontend/components/fieldset/fieldset.njk +13 -0
  105. data/node_modules/govuk-frontend/components/fieldset/macro.njk +3 -0
  106. data/node_modules/govuk-frontend/components/fieldset/template.njk +17 -0
  107. data/node_modules/govuk-frontend/components/file-upload/README.md +332 -0
  108. data/node_modules/govuk-frontend/components/file-upload/_file-upload.scss +19 -0
  109. data/node_modules/govuk-frontend/components/file-upload/file-upload.njk +9 -0
  110. data/node_modules/govuk-frontend/components/file-upload/macro.njk +3 -0
  111. data/node_modules/govuk-frontend/components/file-upload/template.njk +42 -0
  112. data/node_modules/govuk-frontend/components/footer/README.md +284 -0
  113. data/node_modules/govuk-frontend/components/footer/_footer.scss +216 -0
  114. data/node_modules/govuk-frontend/components/footer/footer.njk +3 -0
  115. data/node_modules/govuk-frontend/components/footer/macro.njk +3 -0
  116. data/node_modules/govuk-frontend/components/footer/template.njk +80 -0
  117. data/node_modules/govuk-frontend/components/header/README.md +524 -0
  118. data/node_modules/govuk-frontend/components/header/_header.scss +285 -0
  119. data/node_modules/govuk-frontend/components/header/header.js +717 -0
  120. data/node_modules/govuk-frontend/components/header/header.njk +3 -0
  121. data/node_modules/govuk-frontend/components/header/macro.njk +3 -0
  122. data/node_modules/govuk-frontend/components/header/template.njk +82 -0
  123. data/node_modules/govuk-frontend/components/hint/README.md +157 -0
  124. data/node_modules/govuk-frontend/components/hint/_hint.scss +29 -0
  125. data/node_modules/govuk-frontend/components/hint/hint.njk +7 -0
  126. data/node_modules/govuk-frontend/components/hint/macro.njk +3 -0
  127. data/node_modules/govuk-frontend/components/hint/template.njk +4 -0
  128. data/node_modules/govuk-frontend/components/input/README.md +416 -0
  129. data/node_modules/govuk-frontend/components/input/_input.scss +62 -0
  130. data/node_modules/govuk-frontend/components/input/input.njk +9 -0
  131. data/node_modules/govuk-frontend/components/input/macro.njk +3 -0
  132. data/node_modules/govuk-frontend/components/input/template.njk +42 -0
  133. data/node_modules/govuk-frontend/components/inset-text/README.md +157 -0
  134. data/node_modules/govuk-frontend/components/inset-text/_inset-text.scss +28 -0
  135. data/node_modules/govuk-frontend/components/inset-text/inset-text.njk +7 -0
  136. data/node_modules/govuk-frontend/components/inset-text/macro.njk +3 -0
  137. data/node_modules/govuk-frontend/components/inset-text/template.njk +4 -0
  138. data/node_modules/govuk-frontend/components/label/README.md +193 -0
  139. data/node_modules/govuk-frontend/components/label/_label.scss +45 -0
  140. data/node_modules/govuk-frontend/components/label/label.njk +6 -0
  141. data/node_modules/govuk-frontend/components/label/macro.njk +3 -0
  142. data/node_modules/govuk-frontend/components/label/template.njk +15 -0
  143. data/node_modules/govuk-frontend/components/panel/README.md +151 -0
  144. data/node_modules/govuk-frontend/components/panel/_panel.scss +42 -0
  145. data/node_modules/govuk-frontend/components/panel/macro.njk +3 -0
  146. data/node_modules/govuk-frontend/components/panel/panel.njk +7 -0
  147. data/node_modules/govuk-frontend/components/panel/template.njk +12 -0
  148. data/node_modules/govuk-frontend/components/phase-banner/README.md +152 -0
  149. data/node_modules/govuk-frontend/components/phase-banner/_phase-banner.scss +31 -0
  150. data/node_modules/govuk-frontend/components/phase-banner/macro.njk +3 -0
  151. data/node_modules/govuk-frontend/components/phase-banner/phase-banner.njk +7 -0
  152. data/node_modules/govuk-frontend/components/phase-banner/template.njk +17 -0
  153. data/node_modules/govuk-frontend/components/radios/README.md +686 -0
  154. data/node_modules/govuk-frontend/components/radios/_radios.scss +157 -0
  155. data/node_modules/govuk-frontend/components/radios/macro.njk +3 -0
  156. data/node_modules/govuk-frontend/components/radios/radios.js +730 -0
  157. data/node_modules/govuk-frontend/components/radios/radios.njk +27 -0
  158. data/node_modules/govuk-frontend/components/radios/template.njk +85 -0
  159. data/node_modules/govuk-frontend/components/select/README.md +387 -0
  160. data/node_modules/govuk-frontend/components/select/_select.scss +35 -0
  161. data/node_modules/govuk-frontend/components/select/macro.njk +3 -0
  162. data/node_modules/govuk-frontend/components/select/select.njk +24 -0
  163. data/node_modules/govuk-frontend/components/select/template.njk +44 -0
  164. data/node_modules/govuk-frontend/components/skip-link/README.md +142 -0
  165. data/node_modules/govuk-frontend/components/skip-link/_skip-link.scss +15 -0
  166. data/node_modules/govuk-frontend/components/skip-link/macro.njk +3 -0
  167. data/node_modules/govuk-frontend/components/skip-link/skip-link.njk +3 -0
  168. data/node_modules/govuk-frontend/components/skip-link/template.njk +3 -0
  169. data/node_modules/govuk-frontend/components/table/README.md +585 -0
  170. data/node_modules/govuk-frontend/components/table/_table.scss +50 -0
  171. data/node_modules/govuk-frontend/components/table/macro.njk +3 -0
  172. data/node_modules/govuk-frontend/components/table/table.njk +45 -0
  173. data/node_modules/govuk-frontend/components/table/template.njk +39 -0
  174. data/node_modules/govuk-frontend/components/tabs/README.md +375 -0
  175. data/node_modules/govuk-frontend/components/tabs/_tabs.scss +120 -0
  176. data/node_modules/govuk-frontend/components/tabs/macro.njk +3 -0
  177. data/node_modules/govuk-frontend/components/tabs/tabs.js +1302 -0
  178. data/node_modules/govuk-frontend/components/tabs/tabs.njk +3 -0
  179. data/node_modules/govuk-frontend/components/tabs/template.njk +29 -0
  180. data/node_modules/govuk-frontend/components/tag/README.md +150 -0
  181. data/node_modules/govuk-frontend/components/tag/_tag.scss +23 -0
  182. data/node_modules/govuk-frontend/components/tag/macro.njk +3 -0
  183. data/node_modules/govuk-frontend/components/tag/tag.njk +7 -0
  184. data/node_modules/govuk-frontend/components/tag/template.njk +3 -0
  185. data/node_modules/govuk-frontend/components/textarea/README.md +350 -0
  186. data/node_modules/govuk-frontend/components/textarea/_textarea.scss +31 -0
  187. data/node_modules/govuk-frontend/components/textarea/macro.njk +3 -0
  188. data/node_modules/govuk-frontend/components/textarea/template.njk +41 -0
  189. data/node_modules/govuk-frontend/components/textarea/textarea.njk +11 -0
  190. data/node_modules/govuk-frontend/components/warning-text/README.md +148 -0
  191. data/node_modules/govuk-frontend/components/warning-text/_warning-text.scss +50 -0
  192. data/node_modules/govuk-frontend/components/warning-text/macro.njk +3 -0
  193. data/node_modules/govuk-frontend/components/warning-text/template.njk +9 -0
  194. data/node_modules/govuk-frontend/components/warning-text/warning-text.njk +9 -0
  195. data/node_modules/govuk-frontend/core/_all.scss +6 -0
  196. data/node_modules/govuk-frontend/core/_global-styles.scss +19 -0
  197. data/node_modules/govuk-frontend/core/_links.scss +40 -0
  198. data/node_modules/govuk-frontend/core/_lists.scss +63 -0
  199. data/node_modules/govuk-frontend/core/_section-break.scss +56 -0
  200. data/node_modules/govuk-frontend/core/_template.scss +16 -0
  201. data/node_modules/govuk-frontend/core/_typography.scss +186 -0
  202. data/node_modules/govuk-frontend/helpers/_all.scss +12 -0
  203. data/node_modules/govuk-frontend/helpers/_clearfix.scss +15 -0
  204. data/node_modules/govuk-frontend/helpers/_colour.scss +51 -0
  205. data/node_modules/govuk-frontend/helpers/_device-pixels.scss +38 -0
  206. data/node_modules/govuk-frontend/helpers/_focusable.scss +34 -0
  207. data/node_modules/govuk-frontend/helpers/_font-faces.scss +67 -0
  208. data/node_modules/govuk-frontend/helpers/_grid.scss +100 -0
  209. data/node_modules/govuk-frontend/helpers/_links.scss +149 -0
  210. data/node_modules/govuk-frontend/helpers/_media-queries.scss +95 -0
  211. data/node_modules/govuk-frontend/helpers/_shape-arrow.scss +80 -0
  212. data/node_modules/govuk-frontend/helpers/_spacing.scss +152 -0
  213. data/node_modules/govuk-frontend/helpers/_typography.scss +153 -0
  214. data/node_modules/govuk-frontend/helpers/_visually-hidden.scss +76 -0
  215. data/node_modules/govuk-frontend/objects/_all.scss +4 -0
  216. data/node_modules/govuk-frontend/objects/_form-group.scss +21 -0
  217. data/node_modules/govuk-frontend/objects/_grid.scss +10 -0
  218. data/node_modules/govuk-frontend/objects/_main-wrapper.scss +37 -0
  219. data/node_modules/govuk-frontend/objects/_width-container.scss +28 -0
  220. data/node_modules/govuk-frontend/overrides/_all.scss +4 -0
  221. data/node_modules/govuk-frontend/overrides/_display.scss +14 -0
  222. data/node_modules/govuk-frontend/overrides/_spacing.scss +58 -0
  223. data/node_modules/govuk-frontend/overrides/_typography.scss +21 -0
  224. data/node_modules/govuk-frontend/overrides/_width.scss +41 -0
  225. data/node_modules/govuk-frontend/package.json +89 -0
  226. data/node_modules/govuk-frontend/settings/_all.scss +21 -0
  227. data/node_modules/govuk-frontend/settings/_assets.scss +82 -0
  228. data/node_modules/govuk-frontend/settings/_colours-applied.scss +130 -0
  229. data/node_modules/govuk-frontend/settings/_colours-organisations.scss +136 -0
  230. data/node_modules/govuk-frontend/settings/_colours-palette.scss +37 -0
  231. data/node_modules/govuk-frontend/settings/_compatibility.scss +51 -0
  232. data/node_modules/govuk-frontend/settings/_global-styles.scss +13 -0
  233. data/node_modules/govuk-frontend/settings/_ie8.scss +18 -0
  234. data/node_modules/govuk-frontend/settings/_measurements.scss +85 -0
  235. data/node_modules/govuk-frontend/settings/_media-queries.scss +23 -0
  236. data/node_modules/govuk-frontend/settings/_spacing.scss +80 -0
  237. data/node_modules/govuk-frontend/settings/_typography-font-families.scss +22 -0
  238. data/node_modules/govuk-frontend/settings/_typography-font.scss +48 -0
  239. data/node_modules/govuk-frontend/settings/_typography-responsive.scss +138 -0
  240. data/node_modules/govuk-frontend/template.njk +56 -0
  241. data/node_modules/govuk-frontend/tools/_all.scss +7 -0
  242. data/node_modules/govuk-frontend/tools/_compatibility.scss +36 -0
  243. data/node_modules/govuk-frontend/tools/_exports.scss +33 -0
  244. data/node_modules/govuk-frontend/tools/_font-url.scss +28 -0
  245. data/node_modules/govuk-frontend/tools/_ie8.scss +51 -0
  246. data/node_modules/govuk-frontend/tools/_iff.scss +15 -0
  247. data/node_modules/govuk-frontend/tools/_image-url.scss +28 -0
  248. data/node_modules/govuk-frontend/tools/_px-to-em.scss +20 -0
  249. data/node_modules/govuk-frontend/utilities/_all.scss +2 -0
  250. data/node_modules/govuk-frontend/utilities/_clearfix.scss +5 -0
  251. data/node_modules/govuk-frontend/utilities/_visually-hidden.scss +9 -0
  252. data/node_modules/govuk-frontend/vendor/_sass-mq.scss +351 -0
  253. data/node_modules/govuk-frontend/vendor/polyfills/DOMTokenList.js +272 -0
  254. data/node_modules/govuk-frontend/vendor/polyfills/Document.js +34 -0
  255. data/node_modules/govuk-frontend/vendor/polyfills/Element.js +147 -0
  256. data/node_modules/govuk-frontend/vendor/polyfills/Element/prototype/classList.js +449 -0
  257. data/node_modules/govuk-frontend/vendor/polyfills/Event.js +504 -0
  258. data/node_modules/govuk-frontend/vendor/polyfills/Function/prototype/bind.js +252 -0
  259. data/node_modules/govuk-frontend/vendor/polyfills/Object/defineProperty.js +94 -0
  260. data/node_modules/govuk-frontend/vendor/polyfills/Window.js +28 -0
  261. metadata +249 -2
@@ -0,0 +1,27 @@
1
+ {% from 'radios/macro.njk' import govukRadios %}
2
+
3
+ {{ govukRadios({
4
+ "idPrefix": "radio",
5
+ "name": "radio-group",
6
+ "items": [
7
+ {
8
+ "value": "waste-animal",
9
+ "text": "Waste from animal carcasses"
10
+ },
11
+ {
12
+ "id": "custom-id",
13
+ "value": "waste-mines",
14
+ "text": "Waste from mines or quarries"
15
+ },
16
+ {
17
+ "value": "waste-farm",
18
+ "text": "Farm or agricultural waste",
19
+ "checked": true
20
+ },
21
+ {
22
+ "value": "waste-disabled",
23
+ "text": "Disabled radio option",
24
+ "disabled": true
25
+ }
26
+ ]
27
+ }) }}
@@ -0,0 +1,85 @@
1
+ {% from "../error-message/macro.njk" import govukErrorMessage -%}
2
+ {% from "../fieldset/macro.njk" import govukFieldset %}
3
+ {% from "../hint/macro.njk" import govukHint %}
4
+ {% from "../label/macro.njk" import govukLabel %}
5
+
6
+ {#- If an id 'prefix' is not passed, fall back to using the name attribute
7
+ instead. We need this for error messages and hints as well -#}
8
+ {% set idPrefix = params.idPrefix if params.idPrefix else params.name %}
9
+
10
+ {#- a record of other elements that we need to associate with the input using
11
+ aria-describedby – for example hints or error messages -#}
12
+ {% set describedBy = "" %}
13
+
14
+ {% set isConditional = false %}
15
+ {% for item in params.items %}
16
+ {% if item.conditional %}
17
+ {% set isConditional = true %}
18
+ {% endif %}
19
+ {% endfor %}
20
+
21
+ {#- Capture the HTML so we can optionally nest it in a fieldset -#}
22
+ {% set innerHtml %}
23
+ {% if params.hint %}
24
+ {% set hintId = idPrefix + '-hint' %}
25
+ {% set describedBy = describedBy + ' ' + hintId if describedBy else hintId %}
26
+ {{ govukHint({
27
+ id: hintId,
28
+ classes: params.hint.classes,
29
+ attributes: params.hint.attributes,
30
+ html: params.hint.html,
31
+ text: params.hint.text
32
+ }) | indent(2) | trim }}
33
+ {% endif %}
34
+ {% if params.errorMessage %}
35
+ {% set errorId = idPrefix + '-error' %}
36
+ {% set describedBy = describedBy + ' ' + errorId if describedBy else errorId %}
37
+ {{ govukErrorMessage({
38
+ id: errorId,
39
+ classes: params.errorMessage.classes,
40
+ html: params.errorMessage.html,
41
+ text: params.errorMessage.text
42
+ }) | indent(2) | trim }}
43
+ {% endif %}
44
+ <div class="govuk-radios {%- if params.classes %} {{ params.classes }}{% endif %}"
45
+ {%- for attribute, value in params.attributes %} {{ attribute }}="{{ value }}"{% endfor %}
46
+ {%- if isConditional %} data-module="radios"{% endif -%}>
47
+ {% for item in params.items %}
48
+ {% set id = item.id if item.id else idPrefix + "-" + loop.index %}
49
+ {% set conditionalId = "conditional-" + id %}
50
+ <div class="govuk-radios__item">
51
+ <input class="govuk-radios__input" id="{{ id }}" name="{{ params.name }}" type="radio" value="{{ item.value }}"
52
+ {{-" checked" if item.checked }}
53
+ {{-" disabled" if item.disabled }}
54
+ {%- if item.conditional %} data-aria-controls="{{ conditionalId }}"{% endif -%}>
55
+ {{ govukLabel({
56
+ html: item.html,
57
+ text: item.text,
58
+ classes: 'govuk-radios__label',
59
+ attributes: item.label.attributes,
60
+ for: id
61
+ }) | indent(6) | trim }}
62
+ </div>
63
+ {% if item.conditional %}
64
+ <div class="govuk-radios__conditional" id="{{ conditionalId }}">
65
+ {{ item.conditional.html | safe }}
66
+ </div>
67
+ {% endif %}
68
+ {% endfor %}
69
+ </div>
70
+ {% endset -%}
71
+
72
+ <div class="govuk-form-group {%- if params.errorMessage %} govuk-form-group--error{% endif %}">
73
+ {% if params.fieldset %}
74
+ {% call govukFieldset({
75
+ describedBy: describedBy,
76
+ classes: params.fieldset.classes,
77
+ attributes: params.fieldset.attributes,
78
+ legend: params.fieldset.legend
79
+ }) %}
80
+ {{ innerHtml | trim | safe }}
81
+ {% endcall %}
82
+ {% else %}
83
+ {{ innerHtml | trim | safe }}
84
+ {% endif %}
85
+ </div>
@@ -0,0 +1,387 @@
1
+ # Select
2
+
3
+ ## Introduction
4
+
5
+ The HTML `<select>` element represents a control that provides a menu of options.
6
+
7
+ ## Guidance
8
+
9
+ Find out when to use the Select component in your service in the [GOV.UK Design System](https://govuk-design-system-production.cloudapps.digital/components/select).
10
+
11
+ ## Quick start examples
12
+
13
+ ### Component default
14
+
15
+ [Preview the select component](http://govuk-frontend-review.herokuapp.com/components/select/preview)
16
+
17
+ #### Markup
18
+
19
+ <div class="govuk-form-group">
20
+ <label class="govuk-label" for="select-1">
21
+ Label text goes here
22
+ </label>
23
+
24
+ <select class="govuk-select" id="select-1" name="select-1">
25
+
26
+ <option value="1">GOV.UK frontend option 1</option>
27
+
28
+ <option value="2" selected>GOV.UK frontend option 2</option>
29
+
30
+ <option value="3" disabled>GOV.UK frontend option 3</option>
31
+
32
+ </select>
33
+ </div>
34
+
35
+ #### Macro
36
+
37
+ {% from 'select/macro.njk' import govukSelect %}
38
+
39
+ {{ govukSelect({
40
+ "id": "select-1",
41
+ "name": "select-1",
42
+ "label": {
43
+ "html": "Label text goes here"
44
+ },
45
+ "items": [
46
+ {
47
+ "value": 1,
48
+ "text": "GOV.UK frontend option 1"
49
+ },
50
+ {
51
+ "value": 2,
52
+ "text": "GOV.UK frontend option 2",
53
+ "selected": true
54
+ },
55
+ {
56
+ "value": 3,
57
+ "text": "GOV.UK frontend option 3",
58
+ "disabled": true
59
+ }
60
+ ]
61
+ }) }}
62
+
63
+ ### Select--with-hint-text-and-error
64
+
65
+ [Preview the select--with-hint-text-and-error example](http://govuk-frontend-review.herokuapp.com/components/select/with-hint-text-and-error/preview)
66
+
67
+ #### Markup
68
+
69
+ <div class="govuk-form-group govuk-form-group--error">
70
+ <label class="govuk-label" for="select-2">
71
+ Label text goes here
72
+ </label>
73
+
74
+ <span id="select-2-hint" class="govuk-hint">
75
+ Hint text goes here
76
+ </span>
77
+
78
+ <span id="select-2-error" class="govuk-error-message">
79
+ Error message goes here
80
+ </span>
81
+
82
+ <select class="govuk-select govuk-select--error" id="select-2" name="select-2" aria-describedby="select-2-hint select-2-error">
83
+
84
+ <option value="1">GOV.UK frontend option 1</option>
85
+
86
+ <option value="2">GOV.UK frontend option 2</option>
87
+
88
+ <option value="3">GOV.UK frontend option 3</option>
89
+
90
+ </select>
91
+ </div>
92
+
93
+ #### Macro
94
+
95
+ {% from 'select/macro.njk' import govukSelect %}
96
+
97
+ {{ govukSelect({
98
+ "id": "select-2",
99
+ "name": "select-2",
100
+ "label": {
101
+ "text": "Label text goes here"
102
+ },
103
+ "hint": {
104
+ "text": "Hint text goes here"
105
+ },
106
+ "errorMessage": {
107
+ "text": "Error message goes here"
108
+ },
109
+ "items": [
110
+ {
111
+ "value": 1,
112
+ "text": "GOV.UK frontend option 1"
113
+ },
114
+ {
115
+ "value": 2,
116
+ "text": "GOV.UK frontend option 2"
117
+ },
118
+ {
119
+ "value": 3,
120
+ "text": "GOV.UK frontend option 3"
121
+ }
122
+ ]
123
+ }) }}
124
+
125
+ ### Select--with-label-as-page-heading
126
+
127
+ [Preview the select--with-label-as-page-heading example](http://govuk-frontend-review.herokuapp.com/components/select/with-label-as-page-heading/preview)
128
+
129
+ #### Markup
130
+
131
+ <div class="govuk-form-group">
132
+ <h1 class="govuk-label-wrapper">
133
+ <label class="govuk-label" for="select-3">
134
+ Label text goes here
135
+ </label>
136
+
137
+ </h1>
138
+
139
+ <select class="govuk-select" id="select-3" name="select-3">
140
+
141
+ <option value="1">GOV.UK frontend option 1</option>
142
+
143
+ <option value="2" selected>GOV.UK frontend option 2</option>
144
+
145
+ <option value="3" disabled>GOV.UK frontend option 3</option>
146
+
147
+ </select>
148
+ </div>
149
+
150
+ #### Macro
151
+
152
+ {% from 'select/macro.njk' import govukSelect %}
153
+
154
+ {{ govukSelect({
155
+ "id": "select-3",
156
+ "name": "select-3",
157
+ "label": {
158
+ "html": "Label text goes here",
159
+ "isPageHeading": true
160
+ },
161
+ "items": [
162
+ {
163
+ "value": 1,
164
+ "text": "GOV.UK frontend option 1"
165
+ },
166
+ {
167
+ "value": 2,
168
+ "text": "GOV.UK frontend option 2",
169
+ "selected": true
170
+ },
171
+ {
172
+ "value": 3,
173
+ "text": "GOV.UK frontend option 3",
174
+ "disabled": true
175
+ }
176
+ ]
177
+ }) }}
178
+
179
+ ## Requirements
180
+
181
+ ### Build tool configuration
182
+
183
+ When compiling the Sass files you'll need to define includePaths to reference the node_modules directory. Below is a sample configuration using gulp
184
+
185
+ .pipe(sass({
186
+ includePaths: 'node_modules/'
187
+ }))
188
+
189
+ ### Static asset path configuration
190
+
191
+ In order to include the images used in the components, you need to configure your app to show these assets. Below is a sample configuration using Express js:
192
+
193
+ app.use('/assets', express.static(path.join(__dirname, '/node_modules/govuk-frontend/assets')))
194
+
195
+ ## Component arguments
196
+
197
+ If you are using Nunjucks,then macros take the following arguments
198
+
199
+ **If you’re using Nunjucks macros in production be aware that using `html` arguments, or ones ending with `Html` can be a [security risk](https://en.wikipedia.org/wiki/Cross-site_scripting). More about it in the [Nunjucks documentation](https://mozilla.github.io/nunjucks/api.html#user-defined-templates-warning).**
200
+
201
+ <table class="govuk-table">
202
+
203
+ <thead class="govuk-table__head">
204
+
205
+ <tr class="govuk-table__row">
206
+
207
+ <th class="govuk-table__header" scope="col">Name</th>
208
+
209
+ <th class="govuk-table__header" scope="col">Type</th>
210
+
211
+ <th class="govuk-table__header" scope="col">Required</th>
212
+
213
+ <th class="govuk-table__header" scope="col">Description</th>
214
+
215
+ </tr>
216
+
217
+ </thead>
218
+
219
+ <tbody class="govuk-table__body">
220
+
221
+ <tr class="govuk-table__row">
222
+
223
+ <th class="govuk-table__header" scope="row">id</th>
224
+
225
+ <td class="govuk-table__cell ">string</td>
226
+
227
+ <td class="govuk-table__cell ">Yes</td>
228
+
229
+ <td class="govuk-table__cell ">Id for each select box</td>
230
+
231
+ </tr>
232
+
233
+ <tr class="govuk-table__row">
234
+
235
+ <th class="govuk-table__header" scope="row">name</th>
236
+
237
+ <td class="govuk-table__cell ">string</td>
238
+
239
+ <td class="govuk-table__cell ">Yes</td>
240
+
241
+ <td class="govuk-table__cell ">Name property for the select.</td>
242
+
243
+ </tr>
244
+
245
+ <tr class="govuk-table__row">
246
+
247
+ <th class="govuk-table__header" scope="row">items</th>
248
+
249
+ <td class="govuk-table__cell ">array</td>
250
+
251
+ <td class="govuk-table__cell ">Yes</td>
252
+
253
+ <td class="govuk-table__cell ">Array of option items for the select.</td>
254
+
255
+ </tr>
256
+
257
+ <tr class="govuk-table__row">
258
+
259
+ <th class="govuk-table__header" scope="row">item.value</th>
260
+
261
+ <td class="govuk-table__cell ">string</td>
262
+
263
+ <td class="govuk-table__cell ">No</td>
264
+
265
+ <td class="govuk-table__cell ">Value for the option item.</td>
266
+
267
+ </tr>
268
+
269
+ <tr class="govuk-table__row">
270
+
271
+ <th class="govuk-table__header" scope="row">item.text</th>
272
+
273
+ <td class="govuk-table__cell ">string</td>
274
+
275
+ <td class="govuk-table__cell ">Yes</td>
276
+
277
+ <td class="govuk-table__cell ">Text for the option item.</td>
278
+
279
+ </tr>
280
+
281
+ <tr class="govuk-table__row">
282
+
283
+ <th class="govuk-table__header" scope="row">item.selected</th>
284
+
285
+ <td class="govuk-table__cell ">boolean</td>
286
+
287
+ <td class="govuk-table__cell ">No</td>
288
+
289
+ <td class="govuk-table__cell ">Sets the option as the selected.</td>
290
+
291
+ </tr>
292
+
293
+ <tr class="govuk-table__row">
294
+
295
+ <th class="govuk-table__header" scope="row">item.disabled</th>
296
+
297
+ <td class="govuk-table__cell ">boolean</td>
298
+
299
+ <td class="govuk-table__cell ">No</td>
300
+
301
+ <td class="govuk-table__cell ">Sets the option item as disabled.</td>
302
+
303
+ </tr>
304
+
305
+ <tr class="govuk-table__row">
306
+
307
+ <th class="govuk-table__header" scope="row">label</th>
308
+
309
+ <td class="govuk-table__cell ">object</td>
310
+
311
+ <td class="govuk-table__cell ">No</td>
312
+
313
+ <td class="govuk-table__cell ">Optional label text or HTML by specifying value for either text or html keys. See label component.</td>
314
+
315
+ </tr>
316
+
317
+ <tr class="govuk-table__row">
318
+
319
+ <th class="govuk-table__header" scope="row">hint</th>
320
+
321
+ <td class="govuk-table__cell ">object</td>
322
+
323
+ <td class="govuk-table__cell ">No</td>
324
+
325
+ <td class="govuk-table__cell ">Arguments for the hint component (e.g. text). See hint component.</td>
326
+
327
+ </tr>
328
+
329
+ <tr class="govuk-table__row">
330
+
331
+ <th class="govuk-table__header" scope="row">errorMessage</th>
332
+
333
+ <td class="govuk-table__cell ">object</td>
334
+
335
+ <td class="govuk-table__cell ">No</td>
336
+
337
+ <td class="govuk-table__cell ">Arguments for the errorMessage component (e.g. text). See errorMessage component.</td>
338
+
339
+ </tr>
340
+
341
+ <tr class="govuk-table__row">
342
+
343
+ <th class="govuk-table__header" scope="row">classes</th>
344
+
345
+ <td class="govuk-table__cell ">string</td>
346
+
347
+ <td class="govuk-table__cell ">No</td>
348
+
349
+ <td class="govuk-table__cell ">Optional additional classes to add to the select component.</td>
350
+
351
+ </tr>
352
+
353
+ <tr class="govuk-table__row">
354
+
355
+ <th class="govuk-table__header" scope="row">attributes</th>
356
+
357
+ <td class="govuk-table__cell ">object</td>
358
+
359
+ <td class="govuk-table__cell ">No</td>
360
+
361
+ <td class="govuk-table__cell ">Any extra HTML attributes (for example data attributes) to add to the select component.</td>
362
+
363
+ </tr>
364
+
365
+ </tbody>
366
+
367
+ </table>
368
+
369
+ **If you’re using Nunjucks macros in production be aware that using `html` arguments, or ones ending with `Html` can be a [security risk](https://en.wikipedia.org/wiki/Cross-site_scripting). More about it in the [Nunjucks documentation](https://mozilla.github.io/nunjucks/api.html#user-defined-templates-warning).**
370
+
371
+ ### Setting up Nunjucks views and paths
372
+
373
+ Below is an example setup using express configure views:
374
+
375
+ nunjucks.configure('node_modules/govuk-frontend/components', {
376
+ autoescape: true,
377
+ cache: false,
378
+ express: app
379
+ })
380
+
381
+ ## Contribution
382
+
383
+ Guidelines can be found at [on our Github repository.](https://github.com/alphagov/govuk-frontend/blob/master/CONTRIBUTING.md "link to contributing guidelines on our github repository")
384
+
385
+ ## License
386
+
387
+ MIT