govuk_publishing_components 29.15.0 → 29.15.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (28) hide show
  1. checksums.yaml +4 -4
  2. data/app/assets/javascripts/govuk_publishing_components/components/accordion.js +17 -22
  3. data/app/models/govuk_publishing_components/audit_applications.rb +31 -9
  4. data/app/models/govuk_publishing_components/audit_comparer.rb +15 -9
  5. data/app/views/govuk_publishing_components/audit/_components.html.erb +20 -2
  6. data/app/views/govuk_publishing_components/components/_table.html.erb +3 -2
  7. data/app/views/govuk_publishing_components/components/docs/back_link.yml +1 -1
  8. data/app/views/govuk_publishing_components/components/docs/big_number.yml +2 -2
  9. data/app/views/govuk_publishing_components/components/docs/breadcrumbs.yml +2 -2
  10. data/app/views/govuk_publishing_components/components/docs/button.yml +41 -40
  11. data/app/views/govuk_publishing_components/components/docs/cards.yml +2 -0
  12. data/app/views/govuk_publishing_components/components/docs/checkboxes.yml +216 -216
  13. data/app/views/govuk_publishing_components/components/docs/cookie_banner.yml +2 -1
  14. data/app/views/govuk_publishing_components/components/docs/copy_to_clipboard.yml +2 -2
  15. data/app/views/govuk_publishing_components/components/docs/details.yml +5 -1
  16. data/app/views/govuk_publishing_components/components/docs/document_list.yml +1 -2
  17. data/app/views/govuk_publishing_components/components/docs/error_alert.yml +4 -0
  18. data/app/views/govuk_publishing_components/components/docs/error_summary.yml +4 -6
  19. data/app/views/govuk_publishing_components/components/docs/image_card.yml +2 -1
  20. data/app/views/govuk_publishing_components/components/docs/intervention.yml +25 -25
  21. data/app/views/govuk_publishing_components/components/docs/organisation_logo.yml +1 -2
  22. data/app/views/govuk_publishing_components/components/docs/print_link.yml +5 -1
  23. data/app/views/govuk_publishing_components/components/docs/select.yml +101 -98
  24. data/app/views/govuk_publishing_components/components/docs/table.yml +6 -1
  25. data/app/views/govuk_publishing_components/components/docs/tabs.yml +4 -0
  26. data/lib/govuk_publishing_components/app_helpers/table_helper.rb +4 -2
  27. data/lib/govuk_publishing_components/version.rb +1 -1
  28. metadata +3 -3
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: f53467f684078c59a2e499d0697b47183adacc1b30b9c19839ab8a8983715ff2
4
- data.tar.gz: edddfebbcd07e825aa735e3bbe59fe000ebf5b2007272522ef94e92506cae352
3
+ metadata.gz: d9201a328c875b8cb5c93315a6365ea7dbc632027d0b973f9b0e700c86e01f6a
4
+ data.tar.gz: 78cd444356c208537d7108cda4c471774a09b140c9db3e7aec1b0899adebf968
5
5
  SHA512:
6
- metadata.gz: 25eed8d95465c897c95ab654b97e2bfc15fbf956fd7535c361354da8326cc23795160413abdca24bb80757f4c6ea4c1033f3ca96474caf705ae92059896bf8c8
7
- data.tar.gz: a7c01b6e8fa79cde09ef1a04c596a97a2dde847341c7e50fece0997cd78472b8a6f30741f228feb6c29b969c3374664f46d9262827027fc42ec4a67bb0c59bd4
6
+ metadata.gz: cf29058c5c655fed33c3f10e34728752117387c0006893c70dccf563862a5cc98dae584218e974b40b63b71f64aef1ea8ffb9b9f0c98dde7bbc49fcea331da99
7
+ data.tar.gz: 94bac53144fd6f7685976fbc884485d054ac991f07e1bee42c31707509cf6702063f3c1b9f67314e54dc48ea5f5d08ab00562a68e2af65b9b7dd0f98a7d5e1e5
@@ -10,27 +10,22 @@ window.GOVUK.Modules.GovukAccordion = window.GOVUKFrontend.Accordion;
10
10
  function GemAccordion ($module) {
11
11
  this.$module = $module
12
12
  this.sectionClass = 'govuk-accordion__section'
13
- this.sectionClassExpanded = 'govuk-accordion__section--expanded'
14
- this.sectionHeaderClass = 'govuk-accordion__section-header'
15
- this.sectionInnerContent = 'govuk-accordion__section-content'
16
- this.showAllControls = 'govuk-accordion__show-all'
17
- this.sectionButton = 'govuk-accordion__section-button'
18
- this.headingText = 'govuk-accordion__section-heading-text'
19
-
20
- // Translated component content and language attribute pulled from data attributes
13
+ this.sectionExpandedClass = 'govuk-accordion__section--expanded'
14
+ this.sectionInnerContentClass = 'govuk-accordion__section-content'
15
+
16
+ this.sectionHeader = '.govuk-accordion__section-header'
17
+ this.showAllControls = '.govuk-accordion__show-all'
18
+ this.sectionButton = '.govuk-accordion__section-button'
19
+ this.headingText = '.govuk-accordion__section-heading-text'
20
+
21
+ // language attribute pulled from data attributes
21
22
  this.$module.actions = {}
22
23
  this.$module.actions.locale = this.$module.getAttribute('data-locale')
23
- this.$module.actions.showText = this.$module.getAttribute('data-show-text')
24
- this.$module.actions.hideText = this.$module.getAttribute('data-hide-text')
25
- this.$module.actions.showAllText = this.$module.getAttribute('data-show-all-text')
26
- this.$module.actions.hideAllText = this.$module.getAttribute('data-hide-all-text')
27
- this.$module.actions.thisSectionVisuallyHidden = this.$module.getAttribute('data-this-section-visually-hidden')
28
24
  }
29
25
 
30
26
  GemAccordion.prototype.init = function () {
31
27
  // Indicate that JavaScript has worked
32
- this.$module.classList.add('gem-c-accordion--active')
33
- this.$module.querySelector('.' + this.showAllControls).classList.add('gem-c-accordion__show-all')
28
+ this.$module.querySelector(this.showAllControls).classList.add('gem-c-accordion__show-all')
34
29
 
35
30
  // Feature flag for anchor tag navigation used on manuals
36
31
  if (this.$module.getAttribute('data-anchor-navigation') === 'true') {
@@ -50,7 +45,7 @@ window.GOVUK.Modules.GovukAccordion = window.GOVUKFrontend.Accordion;
50
45
  var showAllAttributes = this.$module.getAttribute('data-show-all-attributes')
51
46
  if (showAllAttributes) {
52
47
  try {
53
- var showAll = this.$module.querySelector('.' + this.showAllControls)
48
+ var showAll = this.$module.querySelector(this.showAllControls)
54
49
  var values = JSON.parse(showAllAttributes)
55
50
  var keys = Object.keys(values)
56
51
  for (var i = 0; i < keys.length; i++) {
@@ -74,7 +69,7 @@ window.GOVUK.Modules.GovukAccordion = window.GOVUKFrontend.Accordion;
74
69
  // Add event listeners for links to open accordion sections when navigated to using said anchor links on the page
75
70
  // Adding an event listener to all anchor link a tags in an accordion is risky but we circumvent this risk partially by only being a layer of accordion behaviour instead of any sort of change to link behaviour
76
71
  GemAccordion.prototype.addEventListenersForAnchors = function () {
77
- var links = this.$module.querySelectorAll('.' + this.sectionInnerContent + ' a[href*="#"]')
72
+ var links = this.$module.querySelectorAll(this.sectionInnerContentClass + ' a[href*="#"]')
78
73
 
79
74
  nodeListForEach(links, function (link) {
80
75
  if (link.pathname === window.location.pathname) {
@@ -87,7 +82,7 @@ window.GOVUK.Modules.GovukAccordion = window.GOVUKFrontend.Accordion;
87
82
  GemAccordion.prototype.openForAnchor = function (hash) {
88
83
  var target = document.getElementById(hash)
89
84
  var $section = this.getContainingSection(target)
90
- var $header = $section.querySelector('.' + this.sectionHeaderClass)
85
+ var $header = $section.querySelector(this.sectionHeader)
91
86
  var $expanded = this.getContainingSection($section)
92
87
  var $parent = $header.parentElement
93
88
 
@@ -95,7 +90,7 @@ window.GOVUK.Modules.GovukAccordion = window.GOVUKFrontend.Accordion;
95
90
  // Should the target anchor link be within the same page, open section - navigate normally
96
91
  // Should the target anchor link be within a different, closed section, open this section
97
92
  // Should the target anchor link be within a different page and different, closed section open this section
98
- if ($expanded && (!$parent.classList.contains(this.sectionClassExpanded))) {
93
+ if ($expanded && (!$parent.classList.contains(this.sectionExpandedClass))) {
99
94
  $header.click()
100
95
  }
101
96
  }
@@ -119,7 +114,7 @@ window.GOVUK.Modules.GovukAccordion = window.GOVUKFrontend.Accordion;
119
114
 
120
115
  // To track the Accordion's "Show all sections" / "Hide all sections" button click events and pass them to the GA event tracking
121
116
  GemAccordion.prototype.addAccordionOpenAllTracking = function () {
122
- this.$module.querySelector('.' + this.showAllControls).addEventListener('click', function (event) {
117
+ this.$module.querySelector(this.showAllControls).addEventListener('click', function (event) {
123
118
  var expanded = event.target.getAttribute('aria-expanded') === 'true'
124
119
  var label = expanded ? 'Show all sections' : 'Hide all sections'
125
120
  var action = expanded ? 'accordionOpened' : 'accordionClosed'
@@ -141,7 +136,7 @@ window.GOVUK.Modules.GovukAccordion = window.GOVUKFrontend.Accordion;
141
136
  }
142
137
 
143
138
  GemAccordion.prototype.addEventListenerSections = function () {
144
- var sections = this.$module.querySelectorAll('.' + this.sectionButton)
139
+ var sections = this.$module.querySelectorAll(this.sectionButton)
145
140
  nodeListForEach(sections, function (section) {
146
141
  section.addEventListener('click', this.addAccordionSectionTracking.bind(this, section))
147
142
  }.bind(this))
@@ -150,7 +145,7 @@ window.GOVUK.Modules.GovukAccordion = window.GOVUKFrontend.Accordion;
150
145
  // If the Accordion's sections are opened on click, then pass them to the GA event tracking
151
146
  GemAccordion.prototype.addAccordionSectionTracking = function (section) {
152
147
  var expanded = section.getAttribute('aria-expanded') === 'false'
153
- var label = section.querySelector('.' + this.headingText).textContent
148
+ var label = section.querySelector(this.headingText).textContent
154
149
  var action = expanded ? 'accordionOpened' : 'accordionClosed'
155
150
  var options = { transport: 'beacon', label: label }
156
151
 
@@ -6,6 +6,7 @@ module GovukPublishingComponents
6
6
  @path = path
7
7
  application_found = application_exists(path)
8
8
  components_found = []
9
+ @component_locations = {}
9
10
  @gem_style_references = []
10
11
  @jquery_references = []
11
12
 
@@ -25,15 +26,15 @@ module GovukPublishingComponents
25
26
  @find_all_javascripts = /\/\/ *= require govuk_publishing_components\/all_components/
26
27
  find_javascripts = /(?<=require govuk_publishing_components\/components\/)[a-zA-Z_-]+/
27
28
 
28
- components_in_templates = find_components(templates, find_components, "templates") || []
29
- components_in_stylesheets = find_components(stylesheets, find_stylesheets, "stylesheets") || []
30
- components_in_print_stylesheets = find_components(stylesheets, find_print_stylesheets, "print_stylesheets") || []
31
- components_in_javascripts = find_components(javascripts, find_javascripts, "javascripts") || []
29
+ components_in_templates = find_components(templates, find_components, "templates", true) || []
30
+ components_in_stylesheets = find_components(stylesheets, find_stylesheets, "stylesheets", false) || []
31
+ components_in_print_stylesheets = find_components(stylesheets, find_print_stylesheets, "print_stylesheets", false) || []
32
+ components_in_javascripts = find_components(javascripts, find_javascripts, "javascripts", false) || []
32
33
 
33
34
  ruby_paths = %w[/app/helpers/ /app/presenters/ /lib/]
34
35
  components_in_ruby = []
35
36
  ruby_paths.each do |ruby_path|
36
- components_in_ruby << find_components(Dir["#{path}#{ruby_path}**/*.{rb,erb}"], find_components, "ruby") || []
37
+ components_in_ruby << find_components(Dir["#{path}#{ruby_path}**/*.{rb,erb}"], find_components, "ruby", true) || []
37
38
  end
38
39
  components_in_ruby = components_in_ruby.flatten.uniq
39
40
 
@@ -67,17 +68,32 @@ module GovukPublishingComponents
67
68
  components_found: components_found,
68
69
  gem_style_references: @gem_style_references.flatten.uniq.sort,
69
70
  jquery_references: @jquery_references.flatten.uniq.sort,
71
+ component_locations: @component_locations,
70
72
  }
71
73
  end
72
74
 
73
75
  private
74
76
 
75
- def find_components(files, find, type)
77
+ def find_components(files, find, type, keep_locations)
76
78
  components_found = []
77
79
 
78
80
  files.each do |file|
79
81
  src = File.read(file)
80
- components_found << find_match(find, src, type)
82
+
83
+ if keep_locations
84
+ components = find_match(find, src, type)
85
+ if components.any?
86
+ components_found << components
87
+ components.each do |component|
88
+ component_sym = component.to_sym
89
+ @component_locations[component_sym] = [] unless @component_locations[component_sym]
90
+ @component_locations[component_sym] << clean_file_path(file)
91
+ @component_locations[component_sym].sort!
92
+ end
93
+ end
94
+ else
95
+ components_found << find_match(find, src, type)
96
+ end
81
97
 
82
98
  if type == "javascripts"
83
99
  jquery_references = find_code_references(file, src, /\$\(/)
@@ -93,12 +109,16 @@ module GovukPublishingComponents
93
109
  components_found.flatten.uniq.sort
94
110
  end
95
111
 
112
+ # looks for components in the given src of a file
113
+ # returns an array of component names or an empty array
96
114
  def find_match(find, src, type)
97
115
  return %w[all] if src.match(@find_all_stylesheets) && type == "stylesheets"
98
116
  return %w[all] if src.match(@find_all_print_stylesheets) && type == "print_stylesheets"
99
117
  return %w[all] if src.match(@find_all_javascripts) && type == "javascripts"
100
118
 
101
119
  matches = src.scan(find)
120
+ return [] unless matches.any?
121
+
102
122
  all_matches = []
103
123
  matches.each do |match|
104
124
  all_matches << clean_file_name(match.tr('[])\'"', ""))
@@ -108,9 +128,11 @@ module GovukPublishingComponents
108
128
  end
109
129
 
110
130
  def find_code_references(file, src, regex)
111
- clean_file_path = /(?<=#{Regexp.escape(@path.to_s)}\/)[\/a-zA-Z_-]+.[a-zA-Z.]+/
131
+ return clean_file_path(file) if regex.match?(src)
132
+ end
112
133
 
113
- return file[clean_file_path] if regex.match?(src)
134
+ def clean_file_path(file)
135
+ file[/(?<=#{Regexp.escape(@path.to_s)}\/)[\/a-zA-Z_-]+.[a-zA-Z.]+/]
114
136
  end
115
137
 
116
138
  def clean_file_name(name)
@@ -106,6 +106,7 @@ module GovukPublishingComponents
106
106
  warning_count: warnings.length,
107
107
  gem_style_references: result[:gem_style_references],
108
108
  jquery_references: result[:jquery_references],
109
+ component_locations: result[:component_locations],
109
110
  }
110
111
  else
111
112
  data << {
@@ -244,28 +245,33 @@ module GovukPublishingComponents
244
245
  (haystack - needle).flatten.sort
245
246
  end
246
247
 
248
+ # returns details of component inclusion by applications
247
249
  def get_components_by_application
248
250
  results = []
249
251
  found_something = false
250
252
 
251
253
  @gem_data[:component_listing].each do |component|
252
- found_in_applications = []
254
+ component_name = component[:name]
255
+ locations = []
253
256
 
254
257
  @applications_data.each do |application|
255
- next unless application[:application_found]
258
+ next unless application[:application_found] && application[:component_locations][component_name.to_sym]
256
259
 
257
- name = application[:name]
260
+ application_name = application[:name]
258
261
  found_something = true
259
262
 
260
- application[:summary].each do |item|
261
- found_in_applications << name if item[:value].include?(component[:name])
262
- end
263
+ locations << {
264
+ name: application_name,
265
+ locations: application[:component_locations][component_name.to_sym],
266
+ }
263
267
  end
264
268
 
269
+ locations = locations.flatten
270
+
265
271
  results << {
266
- component: component[:name],
267
- count: found_in_applications.uniq.length,
268
- list: found_in_applications.uniq.join(", "),
272
+ component: component_name,
273
+ count: locations.length,
274
+ locations: locations,
269
275
  }
270
276
  end
271
277
 
@@ -63,10 +63,28 @@
63
63
  <% @components[:components_by_application].each do |component| %>
64
64
  <div class="govuk-summary-list__row">
65
65
  <dt class="govuk-summary-list__key">
66
- <%= component[:component] %> (<%= component[:count] %>)
66
+ <%= component[:component] %> (<%= pluralize(component[:count], 'use') %>)
67
67
  </dt>
68
68
  <dd class="govuk-summary-list__value">
69
- <%= component[:list] %>
69
+ <% component[:locations].each do |application| %>
70
+ <% github_link = 'https://github.com/alphagov/' + application[:name] + '/blob/main/' %>
71
+ <details class="govuk-details govuk-!-margin-bottom-2" data-module="govuk-details">
72
+ <summary class="govuk-details__summary">
73
+ <span class="govuk-details__summary-text">
74
+ <%= application[:name] %> (<%= application[:locations].length %>)
75
+ </span>
76
+ </summary>
77
+ <div class="govuk-details__text">
78
+ <ul class="govuk-list govuk-list--bullet">
79
+ <% application[:locations].each do |location| %>
80
+ <li>
81
+ <a href="<%= github_link %><%= location %>" class="govuk-link"><%= location %></a>
82
+ </li>
83
+ <% end %>
84
+ </ul>
85
+ </div>
86
+ </details>
87
+ <% end %>
70
88
  </dd>
71
89
  </div>
72
90
  <% end %>
@@ -13,10 +13,11 @@
13
13
  %>
14
14
 
15
15
  <% @table = capture do %>
16
- <%= GovukPublishingComponents::AppHelpers::TableHelper.helper(self, caption, table_id, {
16
+ <%= GovukPublishingComponents::AppHelpers::TableHelper.helper(self, caption, {
17
17
  sortable: sortable,
18
18
  filterable: filterable,
19
- caption_classes: caption_classes
19
+ caption_classes: caption_classes,
20
+ table_id: table_id
20
21
  }) do |t| %>
21
22
 
22
23
  <% if head.any? %>
@@ -18,4 +18,4 @@ examples:
18
18
  data:
19
19
  href: '#'
20
20
  data_attributes:
21
- tracking: GT-1234
21
+ an_attribute: the value
@@ -36,8 +36,8 @@ examples:
36
36
  with_data_attributes:
37
37
  description: |
38
38
  If a `href` attribute is present, `data_attributes` will apply to the `span` containing the number value (see below).
39
-
40
- This will also not automatically apply a `gem-track-click` module attribute if the data attributes pertain to click tracking. Remember to apply this outside the component call in a surrounding element, if using.
39
+
40
+ Note that the component does not include built in tracking. If this is required consider using the [track click script](https://github.com/alphagov/govuk_publishing_components/blob/main/docs/analytics/track-click.md).
41
41
  data:
42
42
  number: 23
43
43
  label: Ministerial departments
@@ -2,9 +2,9 @@ name: "Breadcrumbs"
2
2
  description: "Navigational breadcrumbs, showing page hierarchy"
3
3
  body: |
4
4
  Accepts an array of breadcrumb objects. Each crumb must have a title and a URL.
5
- Links have tracking data but links to the homepage (any link with a url of `/`) will be tracked separately as `homeLinkClicked`
5
+ Links have tracking data but links to the homepage (any link with a url of `/`) will be tracked separately as `homeLinkClicked`.
6
6
 
7
- We recommend that if using the breadcrumbs for navigation purposes, you set `collapse_on_mobile` to `true` to make things more readable for mobile users. However, you can specify `collapse_on_mobile:``false` or remove the flag completely to stop this behaviour.
7
+ We recommend that if using the breadcrumbs for navigation purposes, you set `collapse_on_mobile` to `true` to make things more readable for mobile users. However, you can specify `collapse_on_mobile:``false` or remove the flag completely to stop this behaviour.
8
8
  shared_accessibility_criteria:
9
9
  - link
10
10
  accessibility_criteria:
@@ -23,92 +23,93 @@ govuk_frontend_components:
23
23
  examples:
24
24
  default:
25
25
  data:
26
- text: "Submit"
26
+ text: Submit
27
27
  link_button:
28
28
  data:
29
- text: "I'm really a link sssh"
30
- href: "#"
29
+ text: I'm really a link sssh
30
+ href: '#'
31
31
  link_button_target_blank:
32
32
  data:
33
- text: "I'm really a link sssh"
34
- href: "http://www.gov.uk"
35
- target: "_blank"
33
+ text: I'm really a link sssh
34
+ href: http://www.gov.uk
35
+ target: _blank
36
36
  with_type:
37
37
  description: Buttons default to having a type of submit, but in some cases it may be desirable to have a different type.
38
38
  data:
39
- text: "Button type button"
40
- type: "button"
39
+ text: Button type button
40
+ type: button
41
41
  start_now_button:
42
42
  data:
43
- text: "Start now"
44
- href: "#"
43
+ text: Start now
44
+ href: '#'
45
45
  start: true
46
- rel: "external"
46
+ rel: external
47
47
  secondary_button:
48
48
  data:
49
- text: "Secondary button"
49
+ text: Secondary button
50
50
  secondary: true
51
51
  secondary_quiet_button:
52
52
  data:
53
- text: "Secondary quiet button"
53
+ text: Secondary quiet button
54
54
  secondary_quiet: true
55
55
  secondary_solid_button:
56
56
  data:
57
- text: "Secondary solid button"
57
+ text: Secondary solid button
58
58
  secondary_solid: true
59
59
  destructive_button:
60
60
  data:
61
- text: "Destructive button"
61
+ text: Destructive button
62
62
  destructive: true
63
63
  start_now_button_with_info_text:
64
64
  data:
65
- text: "Start now"
66
- href: "#"
65
+ text: Start now
66
+ href: '#'
67
67
  start: true
68
- info_text: "Sometimes you want to explain where a user is going to."
68
+ info_text: Sometimes you want to explain where a user is going to.
69
69
  with_margin_bottom:
70
70
  description: The component accepts a number for margin bottom from `0` to `9` (`0px` to `60px`) using the [GOV.UK Frontend spacing scale](https://design-system.service.gov.uk/styles/spacing/#the-responsive-spacing-scale). It defaults to having no margin bottom.
71
71
  data:
72
- text: "Submit"
72
+ text: Submit
73
73
  margin_bottom: 6
74
74
  start_now_button_with_info_text_and_margin_bottom:
75
75
  description: When the component requires margin bottom and has info text, the margin is applied to the info text.
76
76
  data:
77
- text: "Start now"
78
- href: "#"
77
+ text: Start now
78
+ href: '#'
79
79
  start: true
80
- info_text: "Sometimes you want to explain where a user is going to and have a margin bottom"
80
+ info_text: Sometimes you want to explain where a user is going to and have a margin bottom
81
81
  margin_bottom: 6
82
82
  extreme_text:
83
83
  data:
84
- text: "I'm a button with lots of text to test how the component scales at extremes."
85
- href: "#"
84
+ text: I'm a button with lots of text to test how the component scales at extremes.
85
+ href: '#'
86
86
  extreme_text_start_now_button:
87
87
  data:
88
- text: "I'm a start now button with lots of text to test how the component scales at extremes."
88
+ text: I'm a start now button with lots of text to test how the component scales at extremes.
89
89
  start: true
90
- href: "#"
90
+ href: '#'
91
91
  with_data_attributes:
92
+ description: Data attributes can be applied as required. Note that the component does not include built in tracking. If this is required consider using the [track click script](https://github.com/alphagov/govuk_publishing_components/blob/main/docs/analytics/track-click.md).
92
93
  data:
93
- text: "Track this!"
94
+ text: Track this!
94
95
  margin_bottom: true
95
96
  data_attributes: {
96
- "module": "cross-domain-tracking",
97
- "tracking-code": "GA-123ABC",
98
- "tracking-name": "transactionTracker"
97
+ module: cross-domain-tracking,
98
+ tracking-code: GA-123ABC,
99
+ tracking-name: transactionTracker
99
100
  }
100
101
  with_title_attribute:
101
102
  data:
102
- text: "Click me"
103
+ text: Click me
103
104
  margin_bottom: true
104
- title: "A button to click"
105
+ title: A button to click
105
106
  inline_layout:
106
107
  description: Buttons will display adjacent to each other until mobile view, when they will appear on top of each other.
107
108
  embed: |
108
109
  <button class="gem-c-button govuk-button gem-c-button--inline">First button</button>
109
110
  <%= component %>
110
111
  data:
111
- text: "Second button"
112
+ text: Second button
112
113
  inline_layout: true
113
114
  with_name_and_value_set:
114
115
  description: |
@@ -116,15 +117,15 @@ examples:
116
117
 
117
118
  Please note that Internet Explorer 6 and 7 have **breaking bugs** when submitting a form with multiple buttons - this can [change what value is submitted by the button](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button#Notes). Make sure to check your user needs and browser usage.
118
119
  data:
119
- text: "This is the button text"
120
- value: "this_is_the_value"
121
- name: "this_is_the_name"
120
+ text: This is the button text
121
+ value: this_is_the_value
122
+ name: this_is_the_name
122
123
  with_js_classes:
123
124
  description: Use `js-` prefixed classes only as interaction hooks – to query and operate on elements via JavaScript
124
125
  data:
125
- text: "Button"
126
- classes: "js-selector-1 js-selector-2"
126
+ text: Button
127
+ classes: js-selector-1 js-selector-2
127
128
  with_aria_label:
128
129
  data:
129
- text: "Button"
130
- aria_label: "Button with custom label"
130
+ text: Button
131
+ aria_label: Button with custom label
@@ -119,6 +119,8 @@ examples:
119
119
  with_data_attributes:
120
120
  description: |
121
121
  Data attributes can be passed to individual links within the component as shown.
122
+
123
+ Note that the component does not include built in tracking. If this is required consider using the [track click script](https://github.com/alphagov/govuk_publishing_components/blob/main/docs/analytics/track-click.md).
122
124
  data:
123
125
  items:
124
126
  - link: