govuk_publishing_components 21.25.0 → 21.26.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.
- checksums.yaml +4 -4
- data/app/assets/stylesheets/component_guide/application.scss +2 -0
- data/app/assets/stylesheets/govuk_publishing_components/component_support.scss +16 -0
- data/app/assets/stylesheets/govuk_publishing_components/govuk_frontend_support.scss +6 -0
- data/app/controllers/govuk_publishing_components/component_guide_controller.rb +34 -0
- data/app/models/govuk_publishing_components/component_docs.rb +10 -1
- data/app/views/govuk_publishing_components/component_guide/index.html.erb +38 -2
- data/lib/govuk_publishing_components/version.rb +1 -1
- metadata +3 -1
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 85bfabc41347e3eabf194ea1267d038be37fb4a7d1f2275a114768760400fdbb
|
|
4
|
+
data.tar.gz: 94857248756288979fa76c7d836de06a412572d3162b56999b554bf5c48f6d6f
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: '05045873de72f2d7ee83c5e3ff3409f4617914f012a8dddd7156d5babccc0ad6e7eccc765e89303f301e8721eadee9730e0ebfe66189d3965566f03547ae5405'
|
|
7
|
+
data.tar.gz: 51a1441882dce26a073c3f18e431346f4ad628487213c19c9d6110398125338f5abc387675e05a93411713e1a6aed8f665bd5dc2a450efd290b31fa5fa3aa5c4
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
// This file should be included in an application prior to specific components
|
|
2
|
+
// It provides supporting gem component helpers and mixins
|
|
3
|
+
// and everything else from govuk-frontend not included in govuk_frontend_support
|
|
4
|
+
@import "govuk/core/all";
|
|
5
|
+
@import "govuk/objects/all";
|
|
6
|
+
@import "govuk/components/all";
|
|
7
|
+
@import "govuk/utilities/all";
|
|
8
|
+
@import "govuk/overrides/all";
|
|
9
|
+
|
|
10
|
+
@import "govuk_publishing_components/components/helpers/variables";
|
|
11
|
+
@import "govuk_publishing_components/components/helpers/brand-colours";
|
|
12
|
+
@import "govuk_publishing_components/components/mixins/govuk-template-link-focus-override";
|
|
13
|
+
@import "govuk_publishing_components/components/mixins/media-down";
|
|
14
|
+
@import "govuk_publishing_components/components/mixins/margins";
|
|
15
|
+
@import "govuk_publishing_components/components/mixins/clearfix";
|
|
16
|
+
@import "govuk_publishing_components/components/mixins/css3";
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
// This file should be included in an application prior to specific components
|
|
2
|
+
// It provides govuk-frontend but adds no weight to the compiled CSS
|
|
3
|
+
@import "components/helpers/govuk-frontend-settings";
|
|
4
|
+
@import "govuk/settings/all";
|
|
5
|
+
@import "govuk/tools/all";
|
|
6
|
+
@import "govuk/helpers/all";
|
|
@@ -5,6 +5,9 @@ module GovukPublishingComponents
|
|
|
5
5
|
def index
|
|
6
6
|
@component_docs = component_docs.all
|
|
7
7
|
@gem_component_docs = gem_component_docs.all
|
|
8
|
+
@components_in_use_docs = components_in_use_docs.used_in_this_app
|
|
9
|
+
@components_in_use_sass = components_in_use_sass(false)
|
|
10
|
+
@components_in_use_print_sass = components_in_use_sass(true)
|
|
8
11
|
end
|
|
9
12
|
|
|
10
13
|
def show
|
|
@@ -36,6 +39,16 @@ module GovukPublishingComponents
|
|
|
36
39
|
end
|
|
37
40
|
end
|
|
38
41
|
|
|
42
|
+
def components_in_use_sass(print_styles)
|
|
43
|
+
print_path = "print/" if print_styles
|
|
44
|
+
additional_files = "@import 'govuk_publishing_components/govuk_frontend_support';\n"
|
|
45
|
+
additional_files << "@import 'govuk_publishing_components/component_support';\n" unless print_styles
|
|
46
|
+
|
|
47
|
+
components_in_use.map { |component|
|
|
48
|
+
"@import 'govuk_publishing_components/components/#{print_path}_#{component.gsub('_', '-')}';" if component_has_sass_file(component.gsub('_', '-'), print_styles)
|
|
49
|
+
}.join("\n").squeeze("\n").prepend(additional_files)
|
|
50
|
+
end
|
|
51
|
+
|
|
39
52
|
private
|
|
40
53
|
|
|
41
54
|
def component_docs
|
|
@@ -46,6 +59,27 @@ module GovukPublishingComponents
|
|
|
46
59
|
@gem_component_docs ||= ComponentDocs.new(gem_components: true)
|
|
47
60
|
end
|
|
48
61
|
|
|
62
|
+
def components_in_use_docs
|
|
63
|
+
@components_in_use_docs ||= ComponentDocs.new(gem_components: true, limit_to: components_in_use)
|
|
64
|
+
end
|
|
65
|
+
|
|
66
|
+
def components_in_use
|
|
67
|
+
matches = []
|
|
68
|
+
|
|
69
|
+
files = Dir["#{Rails.root}/app/views/**/*.html.erb"]
|
|
70
|
+
files.each do |file|
|
|
71
|
+
data = File.read(file)
|
|
72
|
+
matches << data.scan(/(govuk_publishing_components\/components\/[a-z_-]+)/)
|
|
73
|
+
end
|
|
74
|
+
|
|
75
|
+
matches.flatten.uniq.map(&:to_s).sort.map { |m| m.gsub('govuk_publishing_components/components/', '') }
|
|
76
|
+
end
|
|
77
|
+
|
|
78
|
+
def component_has_sass_file(component, print_styles)
|
|
79
|
+
print_path = "print/" if print_styles
|
|
80
|
+
Pathname.new(__dir__ + "/../../assets/stylesheets/govuk_publishing_components/components/#{print_path}_#{component}.scss").exist?
|
|
81
|
+
end
|
|
82
|
+
|
|
49
83
|
def index_breadcrumb
|
|
50
84
|
{
|
|
51
85
|
title: GovukPublishingComponents::Config.component_guide_title,
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
module GovukPublishingComponents
|
|
2
2
|
# @private
|
|
3
3
|
class ComponentDocs
|
|
4
|
-
def initialize(gem_components: false)
|
|
4
|
+
def initialize(gem_components: false, limit_to: false)
|
|
5
|
+
@limit_to = limit_to
|
|
5
6
|
@documentation_directory = gem_components ? gem_documentation_directory : app_documentation_directory
|
|
6
7
|
end
|
|
7
8
|
|
|
@@ -14,6 +15,10 @@ module GovukPublishingComponents
|
|
|
14
15
|
fetch_component_docs.map { |component| build(component) }.sort_by(&:name)
|
|
15
16
|
end
|
|
16
17
|
|
|
18
|
+
def used_in_this_app
|
|
19
|
+
fetch_component_docs.map { |component| build(component) if component_in_use(component[:id]) }.compact.sort_by(&:name)
|
|
20
|
+
end
|
|
21
|
+
|
|
17
22
|
private
|
|
18
23
|
|
|
19
24
|
def build(component)
|
|
@@ -25,6 +30,10 @@ module GovukPublishingComponents
|
|
|
25
30
|
Dir[doc_files].sort.map { |file| parse_documentation(file) }
|
|
26
31
|
end
|
|
27
32
|
|
|
33
|
+
def component_in_use(component)
|
|
34
|
+
return true if @limit_to.include?(component)
|
|
35
|
+
end
|
|
36
|
+
|
|
28
37
|
def fetch_component_doc(id)
|
|
29
38
|
file = Rails.root.join(@documentation_directory, "#{id}.yml")
|
|
30
39
|
if !file.exist?
|
|
@@ -17,8 +17,44 @@
|
|
|
17
17
|
</form>
|
|
18
18
|
|
|
19
19
|
<% unless ENV["MAIN_COMPONENT_GUIDE"] %>
|
|
20
|
-
<h2 class="component-doc-h2">
|
|
20
|
+
<h2 class="component-doc-h2">Gem components used by this app (<%= @components_in_use_docs.length %>)</h2>
|
|
21
21
|
|
|
22
|
+
<%= render "govuk_publishing_components/components/details", {
|
|
23
|
+
title: "Suggested Sass for this application"
|
|
24
|
+
} do %>
|
|
25
|
+
<%= render "govuk_publishing_components/components/textarea", {
|
|
26
|
+
label: {
|
|
27
|
+
text: "Add this to your application's main scss file"
|
|
28
|
+
},
|
|
29
|
+
name: "main-sass",
|
|
30
|
+
value: @components_in_use_sass
|
|
31
|
+
} %>
|
|
32
|
+
<%= render "govuk_publishing_components/components/textarea", {
|
|
33
|
+
label: {
|
|
34
|
+
text: "Add this to your application's print scss file"
|
|
35
|
+
},
|
|
36
|
+
name: "print-sass",
|
|
37
|
+
value: @components_in_use_print_sass
|
|
38
|
+
} %>
|
|
39
|
+
<% end %>
|
|
40
|
+
<pre>
|
|
41
|
+
|
|
42
|
+
</pre>
|
|
43
|
+
|
|
44
|
+
<ul class="component-list">
|
|
45
|
+
<% @components_in_use_docs.each do |component_doc| %>
|
|
46
|
+
<li>
|
|
47
|
+
<%= link_to component_doc.name, component_doc_path(component_doc.id), class: "govuk-link" %>
|
|
48
|
+
<p>
|
|
49
|
+
<%= component_doc.description %>
|
|
50
|
+
</p>
|
|
51
|
+
</li>
|
|
52
|
+
<% end %>
|
|
53
|
+
</ul>
|
|
54
|
+
<% end %>
|
|
55
|
+
|
|
56
|
+
<% unless ENV["MAIN_COMPONENT_GUIDE"] %>
|
|
57
|
+
<h2 class="component-doc-h2">Components in this application (<%= @component_docs.length %>)</h2>
|
|
22
58
|
<ul class="component-list">
|
|
23
59
|
<% @component_docs.each do |component_doc| %>
|
|
24
60
|
<li>
|
|
@@ -30,7 +66,7 @@
|
|
|
30
66
|
<% end %>
|
|
31
67
|
</ul>
|
|
32
68
|
|
|
33
|
-
<h2 class="component-doc-h2">
|
|
69
|
+
<h2 class="component-doc-h2">All gem components (<%= @gem_component_docs.length %>)</h2>
|
|
34
70
|
<% end %>
|
|
35
71
|
|
|
36
72
|
<ul class="component-list">
|
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: govuk_publishing_components
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 21.
|
|
4
|
+
version: 21.26.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- GOV.UK Dev
|
|
@@ -431,6 +431,7 @@ files:
|
|
|
431
431
|
- app/assets/stylesheets/component_guide/application.scss
|
|
432
432
|
- app/assets/stylesheets/govuk_publishing_components/_all_components.scss
|
|
433
433
|
- app/assets/stylesheets/govuk_publishing_components/_all_components_print.scss
|
|
434
|
+
- app/assets/stylesheets/govuk_publishing_components/component_support.scss
|
|
434
435
|
- app/assets/stylesheets/govuk_publishing_components/components/_accordion.scss
|
|
435
436
|
- app/assets/stylesheets/govuk_publishing_components/components/_attachment-link.scss
|
|
436
437
|
- app/assets/stylesheets/govuk_publishing_components/components/_attachment.scss
|
|
@@ -548,6 +549,7 @@ files:
|
|
|
548
549
|
- app/assets/stylesheets/govuk_publishing_components/components/print/_textarea.scss
|
|
549
550
|
- app/assets/stylesheets/govuk_publishing_components/components/print/_title.scss
|
|
550
551
|
- app/assets/stylesheets/govuk_publishing_components/components/print/_translation-nav.scss
|
|
552
|
+
- app/assets/stylesheets/govuk_publishing_components/govuk_frontend_support.scss
|
|
551
553
|
- app/controllers/govuk_publishing_components/application_controller.rb
|
|
552
554
|
- app/controllers/govuk_publishing_components/component_guide_controller.rb
|
|
553
555
|
- app/helpers/govuk_publishing_components/application_helper.rb
|