govuk_publishing_components 23.3.0 → 23.4.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 (93) hide show
  1. checksums.yaml +4 -4
  2. data/app/assets/javascripts/govuk_publishing_components/lib/govspeak/magna-charta.js +9 -8
  3. data/app/assets/stylesheets/govuk_publishing_components/components/_image-card.scss +1 -0
  4. data/app/assets/stylesheets/govuk_publishing_components/components/_input.scss +0 -46
  5. data/app/views/govuk_publishing_components/components/_input.html.erb +6 -6
  6. data/app/views/govuk_publishing_components/components/docs/govspeak.yml +14 -0
  7. data/lib/govuk_publishing_components/version.rb +1 -1
  8. data/node_modules/govuk-frontend/govuk/all.js +31 -37
  9. data/node_modules/govuk-frontend/govuk/components/accordion/README.md +1 -1
  10. data/node_modules/govuk-frontend/govuk/components/accordion/_index.scss +0 -1
  11. data/node_modules/govuk-frontend/govuk/components/accordion/fixtures.json +235 -0
  12. data/node_modules/govuk-frontend/govuk/components/back-link/_index.scss +0 -2
  13. data/node_modules/govuk-frontend/govuk/components/back-link/fixtures.json +56 -0
  14. data/node_modules/govuk-frontend/govuk/components/breadcrumbs/_index.scss +0 -1
  15. data/node_modules/govuk-frontend/govuk/components/breadcrumbs/fixtures.json +172 -0
  16. data/node_modules/govuk-frontend/govuk/components/button/_index.scss +3 -3
  17. data/node_modules/govuk-frontend/govuk/components/button/fixtures.json +275 -0
  18. data/node_modules/govuk-frontend/govuk/components/character-count/fixtures.json +170 -0
  19. data/node_modules/govuk-frontend/govuk/components/checkboxes/_index.scss +13 -13
  20. data/node_modules/govuk-frontend/govuk/components/checkboxes/fixtures.json +1015 -0
  21. data/node_modules/govuk-frontend/govuk/components/date-input/fixtures.json +499 -0
  22. data/node_modules/govuk-frontend/govuk/components/details/_index.scss +0 -1
  23. data/node_modules/govuk-frontend/govuk/components/details/fixtures.json +83 -0
  24. data/node_modules/govuk-frontend/govuk/components/error-message/fixtures.json +66 -0
  25. data/node_modules/govuk-frontend/govuk/components/error-summary/_index.scss +0 -2
  26. data/node_modules/govuk-frontend/govuk/components/error-summary/fixtures.json +181 -0
  27. data/node_modules/govuk-frontend/govuk/components/fieldset/_index.scss +1 -1
  28. data/node_modules/govuk-frontend/govuk/components/fieldset/fixtures.json +93 -0
  29. data/node_modules/govuk-frontend/govuk/components/fieldset/macro-options.json +6 -0
  30. data/node_modules/govuk-frontend/govuk/components/fieldset/template.njk +5 -1
  31. data/node_modules/govuk-frontend/govuk/components/file-upload/fixtures.json +151 -0
  32. data/node_modules/govuk-frontend/govuk/components/footer/_index.scss +0 -1
  33. data/node_modules/govuk-frontend/govuk/components/footer/fixtures.json +482 -0
  34. data/node_modules/govuk-frontend/govuk/components/header/_index.scss +2 -5
  35. data/node_modules/govuk-frontend/govuk/components/header/fixtures.json +360 -0
  36. data/node_modules/govuk-frontend/govuk/components/header/header.js +665 -316
  37. data/node_modules/govuk-frontend/govuk/components/header/macro-options.json +13 -1
  38. data/node_modules/govuk-frontend/govuk/components/header/template.njk +9 -5
  39. data/node_modules/govuk-frontend/govuk/components/hint/_index.scss +0 -2
  40. data/node_modules/govuk-frontend/govuk/components/hint/fixtures.json +50 -0
  41. data/node_modules/govuk-frontend/govuk/components/hint/macro-options.json +1 -1
  42. data/node_modules/govuk-frontend/govuk/components/input/_index.scss +91 -0
  43. data/node_modules/govuk-frontend/govuk/components/input/fixtures.json +538 -0
  44. data/node_modules/govuk-frontend/govuk/components/input/macro-options.json +64 -0
  45. data/node_modules/govuk-frontend/govuk/components/input/template.njk +17 -0
  46. data/node_modules/govuk-frontend/govuk/components/inset-text/fixtures.json +49 -0
  47. data/node_modules/govuk-frontend/govuk/components/label/fixtures.json +75 -0
  48. data/node_modules/govuk-frontend/govuk/components/panel/_index.scss +6 -2
  49. data/node_modules/govuk-frontend/govuk/components/panel/fixtures.json +74 -0
  50. data/node_modules/govuk-frontend/govuk/components/phase-banner/fixtures.json +65 -0
  51. data/node_modules/govuk-frontend/govuk/components/radios/_index.scss +13 -13
  52. data/node_modules/govuk-frontend/govuk/components/radios/fixtures.json +1066 -0
  53. data/node_modules/govuk-frontend/govuk/components/radios/macro-options.json +2 -2
  54. data/node_modules/govuk-frontend/govuk/components/select/_index.scss +0 -1
  55. data/node_modules/govuk-frontend/govuk/components/select/fixtures.json +248 -0
  56. data/node_modules/govuk-frontend/govuk/components/skip-link/fixtures.json +72 -0
  57. data/node_modules/govuk-frontend/govuk/components/summary-list/README.md +1 -1
  58. data/node_modules/govuk-frontend/govuk/components/summary-list/_index.scss +2 -10
  59. data/node_modules/govuk-frontend/govuk/components/summary-list/fixtures.json +991 -0
  60. data/node_modules/govuk-frontend/govuk/components/table/fixtures.json +468 -0
  61. data/node_modules/govuk-frontend/govuk/components/tabs/_index.scss +3 -6
  62. data/node_modules/govuk-frontend/govuk/components/tabs/fixtures.json +229 -0
  63. data/node_modules/govuk-frontend/govuk/components/tag/_index.scss +0 -1
  64. data/node_modules/govuk-frontend/govuk/components/tag/fixtures.json +117 -0
  65. data/node_modules/govuk-frontend/govuk/components/textarea/_index.scss +0 -1
  66. data/node_modules/govuk-frontend/govuk/components/textarea/fixtures.json +199 -0
  67. data/node_modules/govuk-frontend/govuk/components/warning-text/_index.scss +0 -1
  68. data/node_modules/govuk-frontend/govuk/components/warning-text/fixtures.json +68 -0
  69. data/node_modules/govuk-frontend/govuk/helpers/_device-pixels.scss +3 -3
  70. data/node_modules/govuk-frontend/govuk/helpers/_font-faces.scss +9 -11
  71. data/node_modules/govuk-frontend/govuk/helpers/_links.scss +1 -3
  72. data/node_modules/govuk-frontend/govuk/helpers/_media-queries.scss +1 -5
  73. data/node_modules/govuk-frontend/govuk/helpers/_spacing.scss +2 -1
  74. data/node_modules/govuk-frontend/govuk/helpers/_typography.scss +7 -6
  75. data/node_modules/govuk-frontend/govuk/objects/_form-group.scss +0 -1
  76. data/node_modules/govuk-frontend/govuk/objects/_grid.scss +2 -3
  77. data/node_modules/govuk-frontend/govuk/objects/_main-wrapper.scss +0 -1
  78. data/node_modules/govuk-frontend/govuk/overrides/_display.scss +1 -1
  79. data/node_modules/govuk-frontend/govuk/overrides/_width.scss +1 -0
  80. data/node_modules/govuk-frontend/govuk/settings/_colours-applied.scss +0 -3
  81. data/node_modules/govuk-frontend/govuk/settings/_colours-organisations.scss +3 -0
  82. data/node_modules/govuk-frontend/govuk/settings/_colours-palette.scss +9 -2
  83. data/node_modules/govuk-frontend/govuk/settings/_compatibility.scss +0 -1
  84. data/node_modules/govuk-frontend/govuk/settings/_measurements.scss +0 -4
  85. data/node_modules/govuk-frontend/govuk/settings/_typography-font-families.scss +2 -2
  86. data/node_modules/govuk-frontend/govuk/settings/_typography-font.scss +11 -5
  87. data/node_modules/govuk-frontend/govuk/settings/_typography-responsive.scss +6 -2
  88. data/node_modules/govuk-frontend/govuk/tools/_font-url.scss +0 -3
  89. data/node_modules/govuk-frontend/govuk/tools/_image-url.scss +0 -3
  90. data/node_modules/govuk-frontend/govuk/utilities/_visually-hidden.scss +0 -1
  91. data/node_modules/govuk-frontend/govuk/vendor/_sass-mq.scss +0 -4
  92. data/node_modules/govuk-frontend/package.json +1 -1
  93. metadata +31 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 023220040cfb5795cd3e6b148e22b442144f18028ef8e09853e764b004a5de0a
4
- data.tar.gz: 5b2a54316ce8efa8ae221bf8dddf3948934a2472838f629abbda0b2d56bc7f42
3
+ metadata.gz: c709998b8885c2971dd9a8748371d99a0153037f2d39e7776eadcad3dfc9870b
4
+ data.tar.gz: 6e71541e40cc1c636639c8b09650a526d29745161db15b1f99a821375395f07b
5
5
  SHA512:
6
- metadata.gz: 62418105d4b33b8d133b05dcbbf7f440fd0159e07144f8a9c9de272ccb2061c832b54d1233efdbecf91269aa0b98a97fa589ffba74591e86ae9892deef1cfb82
7
- data.tar.gz: 21a872c9340a3f6d8d95dcfa60a4935d1d945d75f24cd5a3427649679d062948d34e8f38a60429ca14f85243bc322beff2c87756ea489b828ca60fcdf714a689
6
+ metadata.gz: 865a9b6d06c7bb7cbae057bb37e289e784a3ffec53352e491e1492a0d71bd774d2f5596d78379b6c4da1ffab046a01b7de597669e9606c5410caffe5c2a2df6b
7
+ data.tar.gz: e91cd02916c1bb0c8f25687c481b7ce61890f51c404ea5625b64411ef38e2347c978c833916103465acfea5e31560dfa81209e619576bbb507538e85649342f8
@@ -49,8 +49,9 @@ window.GOVUK.Modules = window.GOVUK.Modules || {};
49
49
 
50
50
  // true if it's a 'multiple' table
51
51
  // this means multiple bars per rows, but not stacked.
52
- var moreThanTwoTDs = this.$table.querySelectorAll('tbody tr')[0].querySelectorAll('td').length > 2
53
- this.options.multiple = !this.options.stacked && (this.$table.classList.contains('mc-multiple') || moreThanTwoTDs)
52
+ var moreThanTwoCells = this.$table.querySelectorAll('tbody tr')[0].querySelectorAll('th, td').length > 2
53
+
54
+ this.options.multiple = !this.options.stacked && (this.$table.classList.contains('mc-multiple') || moreThanTwoCells)
54
55
 
55
56
  // set the outdent options
56
57
  // which can be set via classes or overriden by setting the value to true
@@ -118,11 +119,11 @@ window.GOVUK.Modules = window.GOVUK.Modules || {};
118
119
  tr.classList.add('mc-tr')
119
120
 
120
121
  var output = ''
121
- var allTheTHs = this.$table.querySelectorAll('th')
122
+ var allTheTHsInTableHead = this.$table.querySelectorAll('thead th')
122
123
 
123
- for (var i = 0; i < allTheTHs.length; i++) {
124
+ for (var i = 0; i < allTheTHsInTableHead.length; i++) {
124
125
  output += '<div class="mc-th">'
125
- output += allTheTHs[i].innerHTML
126
+ output += allTheTHsInTableHead[i].innerHTML
126
127
  output += '</div>'
127
128
  }
128
129
 
@@ -143,11 +144,11 @@ window.GOVUK.Modules = window.GOVUK.Modules || {};
143
144
  tr.classList.add('mc-tr')
144
145
 
145
146
  var cellsOutput = ''
146
- var allTheTds = allTheTbodyTrs[i].querySelectorAll('td')
147
+ var allTheTableBodyCells = allTheTbodyTrs[i].querySelectorAll('th, td')
147
148
 
148
- for (var j = 0; j < allTheTds.length; j++) {
149
+ for (var j = 0; j < allTheTableBodyCells.length; j++) {
149
150
  cellsOutput += '<div class="mc-td">'
150
- cellsOutput += allTheTds[j].innerHTML
151
+ cellsOutput += allTheTableBodyCells[j].innerHTML
151
152
  cellsOutput += '</div>'
152
153
  }
153
154
  tr.innerHTML = cellsOutput
@@ -88,6 +88,7 @@
88
88
  height: 100%;
89
89
  $ie-background: rgba(255, 255, 255, 0);
90
90
  background: $ie-background; // because internet explorer
91
+ -ms-high-contrast-adjust: none;
91
92
  }
92
93
 
93
94
  @include govuk-media-query($from: mobile, $until: tablet) {
@@ -18,49 +18,3 @@
18
18
  padding-left: govuk-spacing(6);
19
19
  }
20
20
  }
21
-
22
- .gem-c-input__wrapper {
23
- display: flex;
24
- display: -ms-flexbox;
25
-
26
- .gem-c-input {
27
- display: inline-block;
28
- flex: 0 1 auto;
29
- }
30
-
31
- .gem-c-input:focus {
32
- z-index: 1; // increase z-index on focus so it appears over the suffix
33
- }
34
- }
35
-
36
- .gem-c-input__prefix,
37
- .gem-c-input__suffix {
38
- @include govuk-font($size: 19);
39
-
40
- background-color: govuk-colour("light-grey", $legacy: "grey-3");
41
- border: $govuk-border-width-form-element solid $govuk-input-border-colour;
42
- box-sizing: border-box;
43
- cursor: default; // emphasise non-editable status of prefixes and suffixes
44
- display: inline-block;
45
- flex: 0 0 auto;
46
- height: 40px;
47
- margin-top: 0;
48
- min-width: 40px;
49
- padding: govuk-spacing(1);
50
- text-align: center;
51
- white-space: nowrap;
52
- width: auto;
53
-
54
- @if $govuk-typography-use-rem {
55
- height: govuk-px-to-rem(40px);
56
- min-width: govuk-px-to-rem(40px);
57
- }
58
- }
59
-
60
- .gem-c-input__prefix {
61
- border-right: 0;
62
- }
63
-
64
- .gem-c-input__suffix {
65
- border-left: 0;
66
- }
@@ -107,17 +107,17 @@
107
107
  %>
108
108
 
109
109
  <% if prefix && suffix %>
110
- <%= tag.div class: "gem-c-input__wrapper" do %>
110
+ <%= tag.div class: "govuk-input__wrapper" do %>
111
111
  <% # The line below relies on in-line styling for legacy browsers and it's whitespace-sensitive %>
112
- <%= tag.span prefix, class: "gem-c-input__prefix", aria: { hidden: true } %><%= input_tag %><%= tag.span suffix, class: "gem-c-input__suffix", aria: { hidden: true } %>
112
+ <%= tag.span prefix, class: "govuk-input__prefix", aria: { hidden: true } %><%= input_tag %><%= tag.span suffix, class: "govuk-input__suffix", aria: { hidden: true } %>
113
113
  <% end %>
114
114
  <% elsif prefix %>
115
- <%= tag.div class: "gem-c-input__wrapper" do %>
116
- <%= tag.span prefix, class: "gem-c-input__prefix", aria: { hidden: true } %><%= input_tag %>
115
+ <%= tag.div class: "govuk-input__wrapper" do %>
116
+ <%= tag.span prefix, class: "govuk-input__prefix", aria: { hidden: true } %><%= input_tag %>
117
117
  <% end %>
118
118
  <% elsif suffix %>
119
- <%= tag.div class: "gem-c-input__wrapper" do %>
120
- <%= input_tag %><%= tag.span suffix, class: "gem-c-input__suffix", aria: { hidden: true } %>
119
+ <%= tag.div class: "govuk-input__wrapper" do %>
120
+ <%= input_tag %><%= tag.span suffix, class: "govuk-input__suffix", aria: { hidden: true } %>
121
121
  <% end %>
122
122
  <% else %>
123
123
  <%= input_tag %>
@@ -236,6 +236,20 @@ examples:
236
236
  </tr>
237
237
  </tbody>
238
238
  </table>
239
+ chart_with_multiple_headings:
240
+ data:
241
+ block: |
242
+ <table id="multiple-table-chart" class="js-barchart-table mc-multiple">
243
+ <caption>Multiple Table</caption>
244
+ <thead>
245
+ <tr><th>Some Data</th><th>YES</th><th>NO</th><th>MAYBE</th></tr>
246
+ </thead>
247
+ <tbody>
248
+ <tr><th>Testing One</th><td>5</td><td>6</td><td>11</td></tr>
249
+ <tr><th>Testing Two</th><td>6</td><td>2</td><td>8</td></tr>
250
+ <tr><th>Testing Three</th><td>3</td><td>9</td><td>12</td></tr>
251
+ </tbody>
252
+ </table>
239
253
  address:
240
254
  data:
241
255
  block: |
@@ -1,3 +1,3 @@
1
1
  module GovukPublishingComponents
2
- VERSION = "23.3.0".freeze
2
+ VERSION = "23.4.0".freeze
3
3
  end
@@ -1961,55 +1961,49 @@ ErrorSummary.prototype.getAssociatedLegendOrLabel = function ($input) {
1961
1961
 
1962
1962
  function Header ($module) {
1963
1963
  this.$module = $module;
1964
+ this.$menuButton = $module && $module.querySelector('.govuk-js-header-toggle');
1965
+ this.$menu = this.$menuButton && $module.querySelector(
1966
+ '#' + this.$menuButton.getAttribute('aria-controls')
1967
+ );
1964
1968
  }
1965
1969
 
1970
+ /**
1971
+ * Initialise header
1972
+ *
1973
+ * Check for the presence of the header, menu and menu button – if any are
1974
+ * missing then there's nothing to do so return early.
1975
+ */
1966
1976
  Header.prototype.init = function () {
1967
- // Check for module
1968
- var $module = this.$module;
1969
- if (!$module) {
1977
+ if (!this.$module || !this.$menuButton || !this.$menu) {
1970
1978
  return
1971
1979
  }
1972
1980
 
1973
- // Check for button
1974
- var $toggleButton = $module.querySelector('.govuk-js-header-toggle');
1975
- if (!$toggleButton) {
1976
- return
1977
- }
1978
-
1979
- // Handle $toggleButton click events
1980
- $toggleButton.addEventListener('click', this.handleClick.bind(this));
1981
+ this.syncState(this.$menu.classList.contains('govuk-header__navigation--open'));
1982
+ this.$menuButton.addEventListener('click', this.handleMenuButtonClick.bind(this));
1981
1983
  };
1982
1984
 
1983
1985
  /**
1984
- * Toggle class
1985
- * @param {object} node element
1986
- * @param {string} className to toggle
1987
- */
1988
- Header.prototype.toggleClass = function (node, className) {
1989
- if (node.className.indexOf(className) > 0) {
1990
- node.className = node.className.replace(' ' + className, '');
1991
- } else {
1992
- node.className += ' ' + className;
1993
- }
1986
+ * Sync menu state
1987
+ *
1988
+ * Sync the menu button class and the accessible state of the menu and the menu
1989
+ * button with the visible state of the menu
1990
+ *
1991
+ * @param {boolean} isVisible Whether the menu is currently visible
1992
+ */
1993
+ Header.prototype.syncState = function (isVisible) {
1994
+ this.$menuButton.classList.toggle('govuk-header__menu-button--open', isVisible);
1995
+ this.$menuButton.setAttribute('aria-expanded', isVisible);
1994
1996
  };
1995
1997
 
1996
1998
  /**
1997
- * An event handler for click event on $toggleButton
1998
- * @param {object} event event
1999
- */
2000
- Header.prototype.handleClick = function (event) {
2001
- var $module = this.$module;
2002
- var $toggleButton = event.target || event.srcElement;
2003
- var $target = $module.querySelector('#' + $toggleButton.getAttribute('aria-controls'));
2004
-
2005
- // If a button with aria-controls, handle click
2006
- if ($toggleButton && $target) {
2007
- this.toggleClass($target, 'govuk-header__navigation--open');
2008
- this.toggleClass($toggleButton, 'govuk-header__menu-button--open');
2009
-
2010
- $toggleButton.setAttribute('aria-expanded', $toggleButton.getAttribute('aria-expanded') !== 'true');
2011
- $target.setAttribute('aria-hidden', $target.getAttribute('aria-hidden') === 'false');
2012
- }
1999
+ * Handle menu button click
2000
+ *
2001
+ * When the menu button is clicked, change the visibility of the menu and then
2002
+ * sync the accessibility state and menu button state
2003
+ */
2004
+ Header.prototype.handleMenuButtonClick = function () {
2005
+ var isVisible = this.$menu.classList.toggle('govuk-header__navigation--open');
2006
+ this.syncState(isVisible);
2013
2007
  };
2014
2008
 
2015
2009
  function Radios ($module) {
@@ -6,7 +6,7 @@ See the [main README quick start guide](https://github.com/alphagov/govuk-fronte
6
6
 
7
7
  ## Guidance and Examples
8
8
 
9
- Find out when to use the details component in your service in the [GOV.UK Design System](https://design-system.service.gov.uk/components/accordion).
9
+ Find out when to use the accordion component in your service in the [GOV.UK Design System](https://design-system.service.gov.uk/components/accordion).
10
10
 
11
11
  ## Component options
12
12
 
@@ -47,7 +47,6 @@
47
47
 
48
48
  // JavaScript enabled
49
49
  .js-enabled {
50
-
51
50
  .govuk-accordion {
52
51
  // Border at the bottom of the whole accordion
53
52
  border-bottom: 1px solid $govuk-border-colour;
@@ -0,0 +1,235 @@
1
+ {
2
+ "component": "accordion",
3
+ "fixtures": [
4
+ {
5
+ "name": "default",
6
+ "options": {
7
+ "id": "default-example",
8
+ "items": [
9
+ {
10
+ "heading": {
11
+ "text": "Section A"
12
+ },
13
+ "content": {
14
+ "html": "<ul class=\"govuk-list govuk-list--bullet\">\n <li>Example item 1</li>\n</ul>\n"
15
+ }
16
+ },
17
+ {
18
+ "heading": {
19
+ "text": "Section B"
20
+ },
21
+ "content": {
22
+ "html": "<ul class=\"govuk-list govuk-list--bullet\">\n <li>Example item 2</li>\n</ul>\n"
23
+ }
24
+ }
25
+ ]
26
+ },
27
+ "html": "<div class=\"govuk-accordion\" data-module=\"govuk-accordion\" id=\"default-example\">\n \n \n <div class=\"govuk-accordion__section \">\n <div class=\"govuk-accordion__section-header\">\n <h2 class=\"govuk-accordion__section-heading\">\n <span class=\"govuk-accordion__section-button\" id=\"default-example-heading-1\">\n Section A\n </span>\n </h2>\n \n </div>\n <div id=\"default-example-content-1\" class=\"govuk-accordion__section-content\" aria-labelledby=\"default-example-heading-1\">\n <ul class=\"govuk-list govuk-list--bullet\">\n <li>Example item 1</li>\n</ul>\n\n </div>\n </div>\n \n \n \n <div class=\"govuk-accordion__section \">\n <div class=\"govuk-accordion__section-header\">\n <h2 class=\"govuk-accordion__section-heading\">\n <span class=\"govuk-accordion__section-button\" id=\"default-example-heading-2\">\n Section B\n </span>\n </h2>\n \n </div>\n <div id=\"default-example-content-2\" class=\"govuk-accordion__section-content\" aria-labelledby=\"default-example-heading-2\">\n <ul class=\"govuk-list govuk-list--bullet\">\n <li>Example item 2</li>\n</ul>\n\n </div>\n </div>\n \n \n</div>"
28
+ },
29
+ {
30
+ "name": "with additional descriptions",
31
+ "options": {
32
+ "id": "with-descriptions",
33
+ "items": [
34
+ {
35
+ "heading": {
36
+ "text": "Test"
37
+ },
38
+ "summary": {
39
+ "text": "Additional description"
40
+ },
41
+ "content": {
42
+ "html": "<ul class=\"govuk-list govuk-list--bullet\">\n <li>Example item 1</li>\n</ul>\n"
43
+ }
44
+ },
45
+ {
46
+ "heading": {
47
+ "text": "Test 2"
48
+ },
49
+ "summary": {
50
+ "html": "<span class=\"govuk-!-font-weight-regular\">Additional description</span>"
51
+ },
52
+ "content": {
53
+ "html": "<ul class=\"govuk-list govuk-list--bullet\">\n <li>Example item 2</li>\n</ul>\n"
54
+ }
55
+ }
56
+ ]
57
+ },
58
+ "html": "<div class=\"govuk-accordion\" data-module=\"govuk-accordion\" id=\"with-descriptions\">\n \n \n <div class=\"govuk-accordion__section \">\n <div class=\"govuk-accordion__section-header\">\n <h2 class=\"govuk-accordion__section-heading\">\n <span class=\"govuk-accordion__section-button\" id=\"with-descriptions-heading-1\">\n Test\n </span>\n </h2>\n \n <div class=\"govuk-accordion__section-summary govuk-body\" id=\"with-descriptions-summary-1\">\n Additional description\n </div>\n \n </div>\n <div id=\"with-descriptions-content-1\" class=\"govuk-accordion__section-content\" aria-labelledby=\"with-descriptions-heading-1\">\n <ul class=\"govuk-list govuk-list--bullet\">\n <li>Example item 1</li>\n</ul>\n\n </div>\n </div>\n \n \n \n <div class=\"govuk-accordion__section \">\n <div class=\"govuk-accordion__section-header\">\n <h2 class=\"govuk-accordion__section-heading\">\n <span class=\"govuk-accordion__section-button\" id=\"with-descriptions-heading-2\">\n Test 2\n </span>\n </h2>\n \n <div class=\"govuk-accordion__section-summary govuk-body\" id=\"with-descriptions-summary-2\">\n <span class=\"govuk-!-font-weight-regular\">Additional description</span>\n </div>\n \n </div>\n <div id=\"with-descriptions-content-2\" class=\"govuk-accordion__section-content\" aria-labelledby=\"with-descriptions-heading-2\">\n <ul class=\"govuk-list govuk-list--bullet\">\n <li>Example item 2</li>\n</ul>\n\n </div>\n </div>\n \n \n</div>"
59
+ },
60
+ {
61
+ "name": "with one section open",
62
+ "options": {
63
+ "id": "one-section-open-example",
64
+ "items": [
65
+ {
66
+ "heading": {
67
+ "text": "Section A"
68
+ },
69
+ "expanded": true,
70
+ "content": {
71
+ "html": "<ul class=\"govuk-list govuk-list--bullet\">\n <li>Example item 1</li>\n</ul>\n"
72
+ }
73
+ },
74
+ {
75
+ "heading": {
76
+ "text": "Section B"
77
+ },
78
+ "content": {
79
+ "html": "<ul class=\"govuk-list govuk-list--bullet\">\n <li>Example item 2</li>\n</ul>\n"
80
+ }
81
+ }
82
+ ]
83
+ },
84
+ "html": "<div class=\"govuk-accordion\" data-module=\"govuk-accordion\" id=\"one-section-open-example\">\n \n \n <div class=\"govuk-accordion__section govuk-accordion__section--expanded\">\n <div class=\"govuk-accordion__section-header\">\n <h2 class=\"govuk-accordion__section-heading\">\n <span class=\"govuk-accordion__section-button\" id=\"one-section-open-example-heading-1\">\n Section A\n </span>\n </h2>\n \n </div>\n <div id=\"one-section-open-example-content-1\" class=\"govuk-accordion__section-content\" aria-labelledby=\"one-section-open-example-heading-1\">\n <ul class=\"govuk-list govuk-list--bullet\">\n <li>Example item 1</li>\n</ul>\n\n </div>\n </div>\n \n \n \n <div class=\"govuk-accordion__section \">\n <div class=\"govuk-accordion__section-header\">\n <h2 class=\"govuk-accordion__section-heading\">\n <span class=\"govuk-accordion__section-button\" id=\"one-section-open-example-heading-2\">\n Section B\n </span>\n </h2>\n \n </div>\n <div id=\"one-section-open-example-content-2\" class=\"govuk-accordion__section-content\" aria-labelledby=\"one-section-open-example-heading-2\">\n <ul class=\"govuk-list govuk-list--bullet\">\n <li>Example item 2</li>\n</ul>\n\n </div>\n </div>\n \n \n</div>"
85
+ },
86
+ {
87
+ "name": "with all sections already open",
88
+ "options": {
89
+ "id": "all-sections-open-example",
90
+ "items": [
91
+ {
92
+ "heading": {
93
+ "text": "Section A"
94
+ },
95
+ "expanded": true,
96
+ "content": {
97
+ "html": "<ul class=\"govuk-list govuk-list--bullet\">\n <li>Example item 1</li>\n</ul>\n"
98
+ }
99
+ },
100
+ {
101
+ "heading": {
102
+ "text": "Section B"
103
+ },
104
+ "expanded": true,
105
+ "content": {
106
+ "html": "<ul class=\"govuk-list govuk-list--bullet\">\n <li>Example item 2</li>\n</ul>\n"
107
+ }
108
+ }
109
+ ]
110
+ },
111
+ "html": "<div class=\"govuk-accordion\" data-module=\"govuk-accordion\" id=\"all-sections-open-example\">\n \n \n <div class=\"govuk-accordion__section govuk-accordion__section--expanded\">\n <div class=\"govuk-accordion__section-header\">\n <h2 class=\"govuk-accordion__section-heading\">\n <span class=\"govuk-accordion__section-button\" id=\"all-sections-open-example-heading-1\">\n Section A\n </span>\n </h2>\n \n </div>\n <div id=\"all-sections-open-example-content-1\" class=\"govuk-accordion__section-content\" aria-labelledby=\"all-sections-open-example-heading-1\">\n <ul class=\"govuk-list govuk-list--bullet\">\n <li>Example item 1</li>\n</ul>\n\n </div>\n </div>\n \n \n \n <div class=\"govuk-accordion__section govuk-accordion__section--expanded\">\n <div class=\"govuk-accordion__section-header\">\n <h2 class=\"govuk-accordion__section-heading\">\n <span class=\"govuk-accordion__section-button\" id=\"all-sections-open-example-heading-2\">\n Section B\n </span>\n </h2>\n \n </div>\n <div id=\"all-sections-open-example-content-2\" class=\"govuk-accordion__section-content\" aria-labelledby=\"all-sections-open-example-heading-2\">\n <ul class=\"govuk-list govuk-list--bullet\">\n <li>Example item 2</li>\n</ul>\n\n </div>\n </div>\n \n \n</div>"
112
+ },
113
+ {
114
+ "name": "with focusable elements inside",
115
+ "options": {
116
+ "id": "with-focusable-elements",
117
+ "items": [
118
+ {
119
+ "heading": {
120
+ "text": "Section A"
121
+ },
122
+ "content": {
123
+ "html": "<a class=\"govuk-link\" href=\"#\">Link A</a>"
124
+ }
125
+ },
126
+ {
127
+ "heading": {
128
+ "text": "Section B"
129
+ },
130
+ "content": {
131
+ "html": "<a class=\"govuk-link\" href=\"#\">Link B</a>"
132
+ }
133
+ }
134
+ ]
135
+ },
136
+ "html": "<div class=\"govuk-accordion\" data-module=\"govuk-accordion\" id=\"with-focusable-elements\">\n \n \n <div class=\"govuk-accordion__section \">\n <div class=\"govuk-accordion__section-header\">\n <h2 class=\"govuk-accordion__section-heading\">\n <span class=\"govuk-accordion__section-button\" id=\"with-focusable-elements-heading-1\">\n Section A\n </span>\n </h2>\n \n </div>\n <div id=\"with-focusable-elements-content-1\" class=\"govuk-accordion__section-content\" aria-labelledby=\"with-focusable-elements-heading-1\">\n <a class=\"govuk-link\" href=\"#\">Link A</a>\n </div>\n </div>\n \n \n \n <div class=\"govuk-accordion__section \">\n <div class=\"govuk-accordion__section-header\">\n <h2 class=\"govuk-accordion__section-heading\">\n <span class=\"govuk-accordion__section-button\" id=\"with-focusable-elements-heading-2\">\n Section B\n </span>\n </h2>\n \n </div>\n <div id=\"with-focusable-elements-content-2\" class=\"govuk-accordion__section-content\" aria-labelledby=\"with-focusable-elements-heading-2\">\n <a class=\"govuk-link\" href=\"#\">Link B</a>\n </div>\n </div>\n \n \n</div>"
137
+ },
138
+ {
139
+ "name": "classes",
140
+ "options": {
141
+ "classes": "myClass",
142
+ "items": [
143
+ {
144
+ "heading": {
145
+ "text": "Section A"
146
+ },
147
+ "content": {
148
+ "text": "Some content"
149
+ }
150
+ }
151
+ ]
152
+ },
153
+ "html": "<div class=\"govuk-accordion myClass\" data-module=\"govuk-accordion\" id=\"\">\n \n \n <div class=\"govuk-accordion__section \">\n <div class=\"govuk-accordion__section-header\">\n <h2 class=\"govuk-accordion__section-heading\">\n <span class=\"govuk-accordion__section-button\" id=\"-heading-1\">\n Section A\n </span>\n </h2>\n \n </div>\n <div id=\"-content-1\" class=\"govuk-accordion__section-content\" aria-labelledby=\"-heading-1\">\n Some content\n </div>\n </div>\n \n \n</div>"
154
+ },
155
+ {
156
+ "name": "attributes",
157
+ "options": {
158
+ "attributes": {
159
+ "data-attribute": "value"
160
+ },
161
+ "items": [
162
+ {
163
+ "heading": {
164
+ "text": "Section A"
165
+ },
166
+ "content": {
167
+ "text": "Some content"
168
+ }
169
+ }
170
+ ]
171
+ },
172
+ "html": "<div class=\"govuk-accordion\" data-module=\"govuk-accordion\" id=\"\" data-attribute=\"value\">\n \n \n <div class=\"govuk-accordion__section \">\n <div class=\"govuk-accordion__section-header\">\n <h2 class=\"govuk-accordion__section-heading\">\n <span class=\"govuk-accordion__section-button\" id=\"-heading-1\">\n Section A\n </span>\n </h2>\n \n </div>\n <div id=\"-content-1\" class=\"govuk-accordion__section-content\" aria-labelledby=\"-heading-1\">\n Some content\n </div>\n </div>\n \n \n</div>"
173
+ },
174
+ {
175
+ "name": "custom heading level",
176
+ "options": {
177
+ "headingLevel": 3,
178
+ "items": [
179
+ {
180
+ "heading": {
181
+ "text": "Section A"
182
+ },
183
+ "content": {
184
+ "text": "Some content"
185
+ }
186
+ }
187
+ ]
188
+ },
189
+ "html": "<div class=\"govuk-accordion\" data-module=\"govuk-accordion\" id=\"\">\n \n \n <div class=\"govuk-accordion__section \">\n <div class=\"govuk-accordion__section-header\">\n <h3 class=\"govuk-accordion__section-heading\">\n <span class=\"govuk-accordion__section-button\" id=\"-heading-1\">\n Section A\n </span>\n </h3>\n \n </div>\n <div id=\"-content-1\" class=\"govuk-accordion__section-content\" aria-labelledby=\"-heading-1\">\n Some content\n </div>\n </div>\n \n \n</div>"
190
+ },
191
+ {
192
+ "name": "heading html",
193
+ "options": {
194
+ "items": [
195
+ {
196
+ "heading": {
197
+ "html": "<span class=\"myClass\">Section A</span>"
198
+ },
199
+ "content": {
200
+ "text": "Some content"
201
+ }
202
+ }
203
+ ]
204
+ },
205
+ "html": "<div class=\"govuk-accordion\" data-module=\"govuk-accordion\" id=\"\">\n \n \n <div class=\"govuk-accordion__section \">\n <div class=\"govuk-accordion__section-header\">\n <h2 class=\"govuk-accordion__section-heading\">\n <span class=\"govuk-accordion__section-button\" id=\"-heading-1\">\n <span class=\"myClass\">Section A</span>\n </span>\n </h2>\n \n </div>\n <div id=\"-content-1\" class=\"govuk-accordion__section-content\" aria-labelledby=\"-heading-1\">\n Some content\n </div>\n </div>\n \n \n</div>"
206
+ },
207
+ {
208
+ "name": "with falsey values",
209
+ "options": {
210
+ "items": [
211
+ {
212
+ "heading": {
213
+ "text": "Section A"
214
+ },
215
+ "content": {
216
+ "text": "Some content"
217
+ }
218
+ },
219
+ false,
220
+ "",
221
+ null,
222
+ {
223
+ "heading": {
224
+ "text": "Section B"
225
+ },
226
+ "content": {
227
+ "text": "Some content"
228
+ }
229
+ }
230
+ ]
231
+ },
232
+ "html": "<div class=\"govuk-accordion\" data-module=\"govuk-accordion\" id=\"\">\n \n \n <div class=\"govuk-accordion__section \">\n <div class=\"govuk-accordion__section-header\">\n <h2 class=\"govuk-accordion__section-heading\">\n <span class=\"govuk-accordion__section-button\" id=\"-heading-1\">\n Section A\n </span>\n </h2>\n \n </div>\n <div id=\"-content-1\" class=\"govuk-accordion__section-content\" aria-labelledby=\"-heading-1\">\n Some content\n </div>\n </div>\n \n \n \n \n \n \n \n \n \n <div class=\"govuk-accordion__section \">\n <div class=\"govuk-accordion__section-header\">\n <h2 class=\"govuk-accordion__section-heading\">\n <span class=\"govuk-accordion__section-button\" id=\"-heading-5\">\n Section B\n </span>\n </h2>\n \n </div>\n <div id=\"-content-5\" class=\"govuk-accordion__section-content\" aria-labelledby=\"-heading-5\">\n Some content\n </div>\n </div>\n \n \n</div>"
233
+ }
234
+ ]
235
+ }