ccs-frontend_helpers 3.5.0 → 4.1.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/CHANGELOG.md +14 -0
- data/Gemfile +3 -3
- data/Gemfile.lock +90 -88
- data/README.md +3 -1
- data/bun.lock +4 -4
- data/ccs-frontend_helpers.gemspec +6 -3
- data/lib/ccs/components/ccs/footer.rb +1 -1
- data/lib/ccs/components/ccs/header.rb +6 -7
- data/lib/ccs/components/ccs/logo.rb +18 -60
- data/lib/ccs/components/govuk/footer.rb +2 -3
- data/lib/ccs/components/govuk/header.rb +7 -31
- data/lib/ccs/components/govuk/logo.rb +7 -36
- data/lib/ccs/components/govuk/phase_banner.rb +1 -1
- data/lib/ccs/frontend_helpers/version.rb +1 -1
- data/lib/ccs/frontend_helpers.rb +1 -1
- data/package.json +2 -2
- metadata +4 -5
- data/lib/ccs/components/govuk/header/link.rb +0 -56
- data/lib/ccs/components/govuk/header/navigation.rb +0 -73
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: aeda4e8c3662cb334e562a5db44effe7e97273868df09d2e9591b1387a95fc80
|
|
4
|
+
data.tar.gz: bfa7228de3381faee7f39a2c5b67b8e86d8561ff0dc0c324c5b5fec67845cfde
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 44047afcab8d8bb51b6d531c0453a57679c81a2eddbe6f1afb3c4fcabb2b760898fbcb14e6197743e52530ba104f46154351ea80f6735bb6369380c407b1ea8d
|
|
7
|
+
data.tar.gz: 858cf09dfaa4509096b0d29c12e21f084ff29e81abfa7eafa734ddfec9c033a9eeb0dec99c7a5ed47d958d5eb312deb599251899c04d10a4adb111928c9f07db
|
data/CHANGELOG.md
CHANGED
|
@@ -7,6 +7,20 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
7
7
|
|
|
8
8
|
## [Unreleased]
|
|
9
9
|
|
|
10
|
+
## [4.1.0] - 2026-05-05
|
|
11
|
+
|
|
12
|
+
### Added
|
|
13
|
+
|
|
14
|
+
- Updated CCS Frontend to v3.2.0
|
|
15
|
+
|
|
16
|
+
## [4.0.0] - 2026-03-12
|
|
17
|
+
|
|
18
|
+
### Added
|
|
19
|
+
|
|
20
|
+
- Updated CCS Frontend to v3.0.0
|
|
21
|
+
- Updated GOV.UK Frontend to v6.1.0
|
|
22
|
+
- Updated CCS Frontend to v3.1.0
|
|
23
|
+
|
|
10
24
|
## [3.5.0] - 2026-02-02
|
|
11
25
|
|
|
12
26
|
### Added
|
data/Gemfile
CHANGED
|
@@ -7,7 +7,7 @@ gemspec
|
|
|
7
7
|
|
|
8
8
|
# Gems for building the package
|
|
9
9
|
gem 'bundler', '~> 2.3'
|
|
10
|
-
gem 'rake', '~> 13.
|
|
10
|
+
gem 'rake', '~> 13.4'
|
|
11
11
|
|
|
12
12
|
# Gems for testing the package
|
|
13
13
|
gem 'capybara', '~> 3.40.0'
|
|
@@ -16,8 +16,8 @@ gem 'simplecov', '~> 0.21'
|
|
|
16
16
|
gem 'nokogiri-diff', '~> 0.3.0'
|
|
17
17
|
|
|
18
18
|
# Gems for linting/formatting the package
|
|
19
|
-
gem 'rubocop', '~> 1.
|
|
20
|
-
gem 'rubocop-capybara', '~> 2.
|
|
19
|
+
gem 'rubocop', '~> 1.86'
|
|
20
|
+
gem 'rubocop-capybara', '~> 2.23'
|
|
21
21
|
gem 'rubocop-rails', '~> 2.34'
|
|
22
22
|
gem 'rubocop-rake', '~> 0.7'
|
|
23
23
|
gem 'rubocop-rspec', '~> 3.9'
|
data/Gemfile.lock
CHANGED
|
@@ -1,37 +1,37 @@
|
|
|
1
1
|
PATH
|
|
2
2
|
remote: .
|
|
3
3
|
specs:
|
|
4
|
-
ccs-frontend_helpers (
|
|
4
|
+
ccs-frontend_helpers (4.1.0)
|
|
5
5
|
rails (>= 7.2)
|
|
6
6
|
|
|
7
7
|
GEM
|
|
8
8
|
remote: https://rubygems.org/
|
|
9
9
|
specs:
|
|
10
|
-
action_text-trix (2.1.
|
|
10
|
+
action_text-trix (2.1.18)
|
|
11
11
|
railties
|
|
12
|
-
actioncable (8.1.
|
|
13
|
-
actionpack (= 8.1.
|
|
14
|
-
activesupport (= 8.1.
|
|
12
|
+
actioncable (8.1.3)
|
|
13
|
+
actionpack (= 8.1.3)
|
|
14
|
+
activesupport (= 8.1.3)
|
|
15
15
|
nio4r (~> 2.0)
|
|
16
16
|
websocket-driver (>= 0.6.1)
|
|
17
17
|
zeitwerk (~> 2.6)
|
|
18
|
-
actionmailbox (8.1.
|
|
19
|
-
actionpack (= 8.1.
|
|
20
|
-
activejob (= 8.1.
|
|
21
|
-
activerecord (= 8.1.
|
|
22
|
-
activestorage (= 8.1.
|
|
23
|
-
activesupport (= 8.1.
|
|
18
|
+
actionmailbox (8.1.3)
|
|
19
|
+
actionpack (= 8.1.3)
|
|
20
|
+
activejob (= 8.1.3)
|
|
21
|
+
activerecord (= 8.1.3)
|
|
22
|
+
activestorage (= 8.1.3)
|
|
23
|
+
activesupport (= 8.1.3)
|
|
24
24
|
mail (>= 2.8.0)
|
|
25
|
-
actionmailer (8.1.
|
|
26
|
-
actionpack (= 8.1.
|
|
27
|
-
actionview (= 8.1.
|
|
28
|
-
activejob (= 8.1.
|
|
29
|
-
activesupport (= 8.1.
|
|
25
|
+
actionmailer (8.1.3)
|
|
26
|
+
actionpack (= 8.1.3)
|
|
27
|
+
actionview (= 8.1.3)
|
|
28
|
+
activejob (= 8.1.3)
|
|
29
|
+
activesupport (= 8.1.3)
|
|
30
30
|
mail (>= 2.8.0)
|
|
31
31
|
rails-dom-testing (~> 2.2)
|
|
32
|
-
actionpack (8.1.
|
|
33
|
-
actionview (= 8.1.
|
|
34
|
-
activesupport (= 8.1.
|
|
32
|
+
actionpack (8.1.3)
|
|
33
|
+
actionview (= 8.1.3)
|
|
34
|
+
activesupport (= 8.1.3)
|
|
35
35
|
nokogiri (>= 1.8.5)
|
|
36
36
|
rack (>= 2.2.4)
|
|
37
37
|
rack-session (>= 1.0.1)
|
|
@@ -39,36 +39,36 @@ GEM
|
|
|
39
39
|
rails-dom-testing (~> 2.2)
|
|
40
40
|
rails-html-sanitizer (~> 1.6)
|
|
41
41
|
useragent (~> 0.16)
|
|
42
|
-
actiontext (8.1.
|
|
42
|
+
actiontext (8.1.3)
|
|
43
43
|
action_text-trix (~> 2.1.15)
|
|
44
|
-
actionpack (= 8.1.
|
|
45
|
-
activerecord (= 8.1.
|
|
46
|
-
activestorage (= 8.1.
|
|
47
|
-
activesupport (= 8.1.
|
|
44
|
+
actionpack (= 8.1.3)
|
|
45
|
+
activerecord (= 8.1.3)
|
|
46
|
+
activestorage (= 8.1.3)
|
|
47
|
+
activesupport (= 8.1.3)
|
|
48
48
|
globalid (>= 0.6.0)
|
|
49
49
|
nokogiri (>= 1.8.5)
|
|
50
|
-
actionview (8.1.
|
|
51
|
-
activesupport (= 8.1.
|
|
50
|
+
actionview (8.1.3)
|
|
51
|
+
activesupport (= 8.1.3)
|
|
52
52
|
builder (~> 3.1)
|
|
53
53
|
erubi (~> 1.11)
|
|
54
54
|
rails-dom-testing (~> 2.2)
|
|
55
55
|
rails-html-sanitizer (~> 1.6)
|
|
56
|
-
activejob (8.1.
|
|
57
|
-
activesupport (= 8.1.
|
|
56
|
+
activejob (8.1.3)
|
|
57
|
+
activesupport (= 8.1.3)
|
|
58
58
|
globalid (>= 0.3.6)
|
|
59
|
-
activemodel (8.1.
|
|
60
|
-
activesupport (= 8.1.
|
|
61
|
-
activerecord (8.1.
|
|
62
|
-
activemodel (= 8.1.
|
|
63
|
-
activesupport (= 8.1.
|
|
59
|
+
activemodel (8.1.3)
|
|
60
|
+
activesupport (= 8.1.3)
|
|
61
|
+
activerecord (8.1.3)
|
|
62
|
+
activemodel (= 8.1.3)
|
|
63
|
+
activesupport (= 8.1.3)
|
|
64
64
|
timeout (>= 0.4.0)
|
|
65
|
-
activestorage (8.1.
|
|
66
|
-
actionpack (= 8.1.
|
|
67
|
-
activejob (= 8.1.
|
|
68
|
-
activerecord (= 8.1.
|
|
69
|
-
activesupport (= 8.1.
|
|
65
|
+
activestorage (8.1.3)
|
|
66
|
+
actionpack (= 8.1.3)
|
|
67
|
+
activejob (= 8.1.3)
|
|
68
|
+
activerecord (= 8.1.3)
|
|
69
|
+
activesupport (= 8.1.3)
|
|
70
70
|
marcel (~> 1.0)
|
|
71
|
-
activesupport (8.1.
|
|
71
|
+
activesupport (8.1.3)
|
|
72
72
|
base64
|
|
73
73
|
bigdecimal
|
|
74
74
|
concurrent-ruby (~> 1.0, >= 1.3.1)
|
|
@@ -81,11 +81,11 @@ GEM
|
|
|
81
81
|
securerandom (>= 0.3)
|
|
82
82
|
tzinfo (~> 2.0, >= 2.0.5)
|
|
83
83
|
uri (>= 0.13.1)
|
|
84
|
-
addressable (2.
|
|
85
|
-
public_suffix (>= 2.0.2, <
|
|
84
|
+
addressable (2.9.0)
|
|
85
|
+
public_suffix (>= 2.0.2, < 8.0)
|
|
86
86
|
ast (2.4.3)
|
|
87
87
|
base64 (0.3.0)
|
|
88
|
-
bigdecimal (4.0
|
|
88
|
+
bigdecimal (4.1.0)
|
|
89
89
|
builder (3.3.0)
|
|
90
90
|
capybara (3.40.0)
|
|
91
91
|
addressable
|
|
@@ -103,22 +103,23 @@ GEM
|
|
|
103
103
|
diff-lcs (1.6.2)
|
|
104
104
|
docile (1.4.0)
|
|
105
105
|
drb (2.2.3)
|
|
106
|
-
erb (6.0.
|
|
106
|
+
erb (6.0.4)
|
|
107
107
|
erubi (1.13.1)
|
|
108
108
|
globalid (1.3.0)
|
|
109
109
|
activesupport (>= 6.1)
|
|
110
110
|
i18n (1.14.8)
|
|
111
111
|
concurrent-ruby (~> 1.0)
|
|
112
112
|
io-console (0.8.2)
|
|
113
|
-
irb (1.
|
|
113
|
+
irb (1.17.0)
|
|
114
114
|
pp (>= 0.6.0)
|
|
115
|
+
prism (>= 1.3.0)
|
|
115
116
|
rdoc (>= 4.0.0)
|
|
116
117
|
reline (>= 0.4.2)
|
|
117
|
-
json (2.
|
|
118
|
+
json (2.19.4)
|
|
118
119
|
language_server-protocol (3.17.0.5)
|
|
119
120
|
lint_roller (1.1.0)
|
|
120
121
|
logger (1.7.0)
|
|
121
|
-
loofah (2.25.
|
|
122
|
+
loofah (2.25.1)
|
|
122
123
|
crass (~> 1.0.2)
|
|
123
124
|
nokogiri (>= 1.12.0)
|
|
124
125
|
mail (2.9.0)
|
|
@@ -130,9 +131,10 @@ GEM
|
|
|
130
131
|
marcel (1.1.0)
|
|
131
132
|
matrix (0.4.2)
|
|
132
133
|
mini_mime (1.1.5)
|
|
133
|
-
minitest (6.0.
|
|
134
|
+
minitest (6.0.2)
|
|
135
|
+
drb (~> 2.0)
|
|
134
136
|
prism (~> 1.5)
|
|
135
|
-
net-imap (0.6.
|
|
137
|
+
net-imap (0.6.3)
|
|
136
138
|
date
|
|
137
139
|
net-protocol
|
|
138
140
|
net-pop (0.1.2)
|
|
@@ -142,17 +144,17 @@ GEM
|
|
|
142
144
|
net-smtp (0.5.1)
|
|
143
145
|
net-protocol
|
|
144
146
|
nio4r (2.7.5)
|
|
145
|
-
nokogiri (1.19.
|
|
147
|
+
nokogiri (1.19.2-arm64-darwin)
|
|
146
148
|
racc (~> 1.4)
|
|
147
|
-
nokogiri (1.19.
|
|
149
|
+
nokogiri (1.19.2-x86_64-darwin)
|
|
148
150
|
racc (~> 1.4)
|
|
149
|
-
nokogiri (1.19.
|
|
151
|
+
nokogiri (1.19.2-x86_64-linux-gnu)
|
|
150
152
|
racc (~> 1.4)
|
|
151
153
|
nokogiri-diff (0.3.0)
|
|
152
154
|
nokogiri (~> 1.5)
|
|
153
155
|
tdiff (~> 0.4)
|
|
154
|
-
parallel (1.
|
|
155
|
-
parser (3.3.
|
|
156
|
+
parallel (1.28.0)
|
|
157
|
+
parser (3.3.11.1)
|
|
156
158
|
ast (~> 2.4.1)
|
|
157
159
|
racc
|
|
158
160
|
pp (0.6.3)
|
|
@@ -162,40 +164,40 @@ GEM
|
|
|
162
164
|
psych (5.3.1)
|
|
163
165
|
date
|
|
164
166
|
stringio
|
|
165
|
-
public_suffix (
|
|
167
|
+
public_suffix (7.0.5)
|
|
166
168
|
racc (1.8.1)
|
|
167
|
-
rack (3.2.
|
|
168
|
-
rack-session (2.1.
|
|
169
|
+
rack (3.2.6)
|
|
170
|
+
rack-session (2.1.2)
|
|
169
171
|
base64 (>= 0.1.0)
|
|
170
172
|
rack (>= 3.0.0)
|
|
171
173
|
rack-test (2.2.0)
|
|
172
174
|
rack (>= 1.3)
|
|
173
175
|
rackup (2.3.1)
|
|
174
176
|
rack (>= 3)
|
|
175
|
-
rails (8.1.
|
|
176
|
-
actioncable (= 8.1.
|
|
177
|
-
actionmailbox (= 8.1.
|
|
178
|
-
actionmailer (= 8.1.
|
|
179
|
-
actionpack (= 8.1.
|
|
180
|
-
actiontext (= 8.1.
|
|
181
|
-
actionview (= 8.1.
|
|
182
|
-
activejob (= 8.1.
|
|
183
|
-
activemodel (= 8.1.
|
|
184
|
-
activerecord (= 8.1.
|
|
185
|
-
activestorage (= 8.1.
|
|
186
|
-
activesupport (= 8.1.
|
|
177
|
+
rails (8.1.3)
|
|
178
|
+
actioncable (= 8.1.3)
|
|
179
|
+
actionmailbox (= 8.1.3)
|
|
180
|
+
actionmailer (= 8.1.3)
|
|
181
|
+
actionpack (= 8.1.3)
|
|
182
|
+
actiontext (= 8.1.3)
|
|
183
|
+
actionview (= 8.1.3)
|
|
184
|
+
activejob (= 8.1.3)
|
|
185
|
+
activemodel (= 8.1.3)
|
|
186
|
+
activerecord (= 8.1.3)
|
|
187
|
+
activestorage (= 8.1.3)
|
|
188
|
+
activesupport (= 8.1.3)
|
|
187
189
|
bundler (>= 1.15.0)
|
|
188
|
-
railties (= 8.1.
|
|
190
|
+
railties (= 8.1.3)
|
|
189
191
|
rails-dom-testing (2.3.0)
|
|
190
192
|
activesupport (>= 5.0.0)
|
|
191
193
|
minitest
|
|
192
194
|
nokogiri (>= 1.6)
|
|
193
|
-
rails-html-sanitizer (1.
|
|
194
|
-
loofah (~> 2.
|
|
195
|
+
rails-html-sanitizer (1.7.0)
|
|
196
|
+
loofah (~> 2.25)
|
|
195
197
|
nokogiri (>= 1.15.7, != 1.16.7, != 1.16.6, != 1.16.5, != 1.16.4, != 1.16.3, != 1.16.2, != 1.16.1, != 1.16.0.rc1, != 1.16.0)
|
|
196
|
-
railties (8.1.
|
|
197
|
-
actionpack (= 8.1.
|
|
198
|
-
activesupport (= 8.1.
|
|
198
|
+
railties (8.1.3)
|
|
199
|
+
actionpack (= 8.1.3)
|
|
200
|
+
activesupport (= 8.1.3)
|
|
199
201
|
irb (~> 1.13)
|
|
200
202
|
rackup (>= 1.0.0)
|
|
201
203
|
rake (>= 12.2)
|
|
@@ -203,12 +205,12 @@ GEM
|
|
|
203
205
|
tsort (>= 0.2)
|
|
204
206
|
zeitwerk (~> 2.6)
|
|
205
207
|
rainbow (3.1.1)
|
|
206
|
-
rake (13.
|
|
207
|
-
rdoc (7.0
|
|
208
|
+
rake (13.4.2)
|
|
209
|
+
rdoc (7.2.0)
|
|
208
210
|
erb
|
|
209
211
|
psych (>= 4.0.0)
|
|
210
212
|
tsort
|
|
211
|
-
regexp_parser (2.
|
|
213
|
+
regexp_parser (2.12.0)
|
|
212
214
|
reline (0.6.3)
|
|
213
215
|
io-console (~> 0.5)
|
|
214
216
|
rspec (3.13.2)
|
|
@@ -224,23 +226,23 @@ GEM
|
|
|
224
226
|
diff-lcs (>= 1.2.0, < 2.0)
|
|
225
227
|
rspec-support (~> 3.13.0)
|
|
226
228
|
rspec-support (3.13.6)
|
|
227
|
-
rubocop (1.
|
|
229
|
+
rubocop (1.86.1)
|
|
228
230
|
json (~> 2.3)
|
|
229
231
|
language_server-protocol (~> 3.17.0.2)
|
|
230
232
|
lint_roller (~> 1.1.0)
|
|
231
|
-
parallel (
|
|
233
|
+
parallel (>= 1.10)
|
|
232
234
|
parser (>= 3.3.0.2)
|
|
233
235
|
rainbow (>= 2.2.2, < 4.0)
|
|
234
236
|
regexp_parser (>= 2.9.3, < 3.0)
|
|
235
237
|
rubocop-ast (>= 1.49.0, < 2.0)
|
|
236
238
|
ruby-progressbar (~> 1.7)
|
|
237
239
|
unicode-display_width (>= 2.4.0, < 4.0)
|
|
238
|
-
rubocop-ast (1.49.
|
|
240
|
+
rubocop-ast (1.49.1)
|
|
239
241
|
parser (>= 3.3.7.2)
|
|
240
242
|
prism (~> 1.7)
|
|
241
|
-
rubocop-capybara (2.
|
|
243
|
+
rubocop-capybara (2.23.0)
|
|
242
244
|
lint_roller (~> 1.1)
|
|
243
|
-
rubocop (~> 1.
|
|
245
|
+
rubocop (~> 1.81)
|
|
244
246
|
rubocop-rails (2.34.3)
|
|
245
247
|
activesupport (>= 4.2.0)
|
|
246
248
|
lint_roller (~> 1.1)
|
|
@@ -264,7 +266,7 @@ GEM
|
|
|
264
266
|
stringio (3.2.0)
|
|
265
267
|
tdiff (0.4.0)
|
|
266
268
|
thor (1.5.0)
|
|
267
|
-
timeout (0.6.
|
|
269
|
+
timeout (0.6.1)
|
|
268
270
|
tsort (0.2.0)
|
|
269
271
|
tzinfo (2.0.6)
|
|
270
272
|
concurrent-ruby (~> 1.0)
|
|
@@ -279,8 +281,8 @@ GEM
|
|
|
279
281
|
websocket-extensions (0.1.5)
|
|
280
282
|
xpath (3.2.0)
|
|
281
283
|
nokogiri (~> 1.8)
|
|
282
|
-
yard (0.9.
|
|
283
|
-
zeitwerk (2.7.
|
|
284
|
+
yard (0.9.43)
|
|
285
|
+
zeitwerk (2.7.5)
|
|
284
286
|
|
|
285
287
|
PLATFORMS
|
|
286
288
|
arm64-darwin-24
|
|
@@ -296,10 +298,10 @@ DEPENDENCIES
|
|
|
296
298
|
capybara (~> 3.40.0)
|
|
297
299
|
ccs-frontend_helpers!
|
|
298
300
|
nokogiri-diff (~> 0.3.0)
|
|
299
|
-
rake (~> 13.
|
|
301
|
+
rake (~> 13.4)
|
|
300
302
|
rspec (~> 3.13)
|
|
301
|
-
rubocop (~> 1.
|
|
302
|
-
rubocop-capybara (~> 2.
|
|
303
|
+
rubocop (~> 1.86)
|
|
304
|
+
rubocop-capybara (~> 2.23)
|
|
303
305
|
rubocop-rails (~> 2.34)
|
|
304
306
|
rubocop-rake (~> 0.7)
|
|
305
307
|
rubocop-rspec (~> 3.9)
|
data/README.md
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
[](https://github.com/Crown-Commercial-Service/ccs-frontend_helpers/actions/workflows/release.yml)
|
|
4
4
|
[](https://badge.fury.io/rb/ccs-frontend_helpers)
|
|
5
5
|
|
|
6
|
-
The CCS Frontend Helpers gem was created for use in the Crown Marketplace projects at the
|
|
6
|
+
The CCS Frontend Helpers gem was created for use in the Crown Marketplace projects at the Government Commercial Agency.
|
|
7
7
|
This project contains two applications (both use the Ruby on Rails framework):
|
|
8
8
|
- [Crown Marketplace](https://github.com/Crown-Commercial-Service/crown-marketplace)
|
|
9
9
|
- [Crown Marketplace Legacy](https://github.com/Crown-Commercial-Service/crown-marketplace-legacy)
|
|
@@ -14,6 +14,8 @@ The following table shows the version of CCS Frontend Helpers that you should us
|
|
|
14
14
|
|
|
15
15
|
| CCS Frontend Helpers Version | Target GOV.UK Frontend Version | Target CCS Frontend Version |
|
|
16
16
|
| ----------------------------- | ------------------------------ | --------------------------- |
|
|
17
|
+
| [4.1.0](https://github.com/Crown-Commercial-Service/ccs-frontend_helpers/releases/tag/v4.1.0) | [6.1.0](https://github.com/alphagov/govuk-frontend/releases/tag/v6.1.0) | [3.2.0](https://github.com/Crown-Commercial-Service/ccs-frontend-project/releases/tag/v3.2.0) |
|
|
18
|
+
| [4.0.0](https://github.com/Crown-Commercial-Service/ccs-frontend_helpers/releases/tag/v4.0.0) | [6.1.0](https://github.com/alphagov/govuk-frontend/releases/tag/v6.1.0) | [3.1.0](https://github.com/Crown-Commercial-Service/ccs-frontend-project/releases/tag/v3.1.0) |
|
|
17
19
|
| [3.5.0](https://github.com/Crown-Commercial-Service/ccs-frontend_helpers/releases/tag/v3.5.0) | [5.14.0](https://github.com/alphagov/govuk-frontend/releases/tag/v5.14.0) | [2.5.0](https://github.com/Crown-Commercial-Service/ccs-frontend-project/releases/tag/v2.5.0) |
|
|
18
20
|
| [3.4.0](https://github.com/Crown-Commercial-Service/ccs-frontend_helpers/releases/tag/v3.4.0) | [5.14.0](https://github.com/alphagov/govuk-frontend/releases/tag/v5.14.0) | [2.4.0](https://github.com/Crown-Commercial-Service/ccs-frontend-project/releases/tag/v2.4.0) |
|
|
19
21
|
| [3.3.0](https://github.com/Crown-Commercial-Service/ccs-frontend_helpers/releases/tag/v3.3.0) | [5.13.0](https://github.com/alphagov/govuk-frontend/releases/tag/v5.13.0) | [2.3.0](https://github.com/Crown-Commercial-Service/ccs-frontend-project/releases/tag/v2.3.0) |
|
data/bun.lock
CHANGED
|
@@ -4,15 +4,15 @@
|
|
|
4
4
|
"workspaces": {
|
|
5
5
|
"": {
|
|
6
6
|
"devDependencies": {
|
|
7
|
-
"ccs-frontend": "2.
|
|
8
|
-
"govuk-frontend": "
|
|
7
|
+
"ccs-frontend": "3.2.0",
|
|
8
|
+
"govuk-frontend": "6.1.0",
|
|
9
9
|
},
|
|
10
10
|
},
|
|
11
11
|
},
|
|
12
12
|
"packages": {
|
|
13
|
-
"ccs-frontend": ["ccs-frontend@2.
|
|
13
|
+
"ccs-frontend": ["ccs-frontend@3.2.0", "", { "peerDependencies": { "govuk-frontend": "^6.1.0", "jquery": "^4.x" } }, "sha512-RH3lmFJWlSDNvquCqD/G42jsTCjHZeaTy0YqzX4W5bzGxFdshoeoa0RtHe0yIcJMGgHQASvzRLmtF6SYudhtVQ=="],
|
|
14
14
|
|
|
15
|
-
"govuk-frontend": ["govuk-frontend@
|
|
15
|
+
"govuk-frontend": ["govuk-frontend@6.1.0", "", {}, "sha512-sqivexZFa82LiDIDVMItsUlqEXE/wEUWWBqzEoxHvUFLBH7bY0C8lVrj1qsDThSnj5JEUMS7isBAbKnfQ5Qp6g=="],
|
|
16
16
|
|
|
17
17
|
"jquery": ["jquery@3.7.1", "", {}, "sha512-m4avr8yL8kmFN8psrbFFFmB/If14iN5o9nw/NgnnM+kybDJpRsAynV2BsfpTYrTRysYUdADVD7CkUUizgkpLfg=="],
|
|
18
18
|
}
|
|
@@ -5,10 +5,13 @@ require_relative 'lib/ccs/frontend_helpers/version'
|
|
|
5
5
|
Gem::Specification.new do |spec|
|
|
6
6
|
spec.name = 'ccs-frontend_helpers'
|
|
7
7
|
spec.version = CCS::FrontendHelpers::VERSION
|
|
8
|
-
spec.authors = [
|
|
8
|
+
spec.authors = [
|
|
9
|
+
'Crown Commercial Service',
|
|
10
|
+
'Government Commerical Agency'
|
|
11
|
+
]
|
|
9
12
|
|
|
10
|
-
spec.summary = 'Gem containing view helpers for CCS Ruby on Rails projects'
|
|
11
|
-
spec.description = 'Gem containing view helpers for CCS Ruby on Rails projects'
|
|
13
|
+
spec.summary = 'Gem containing view helpers for GCA (formally CCS) Ruby on Rails projects'
|
|
14
|
+
spec.description = 'Gem containing view helpers for CCS (formally CCS) Ruby on Rails projects'
|
|
12
15
|
spec.homepage = 'https://github.com/Crown-Commercial-Service/ccs-frontend_helpers'
|
|
13
16
|
spec.license = 'MIT'
|
|
14
17
|
spec.required_ruby_version = '>= 3.2.0'
|
|
@@ -53,7 +53,7 @@ module CCS
|
|
|
53
53
|
# @return [ActiveSupport::SafeBuffer]
|
|
54
54
|
|
|
55
55
|
def render
|
|
56
|
-
tag.
|
|
56
|
+
tag.div(**options[:attributes]) do
|
|
57
57
|
tag.div(class: "govuk-width-container #{options[:container_classes]}".rstrip) do
|
|
58
58
|
if navigation
|
|
59
59
|
concat(tag.div(class: 'ccs-footer__navigation') do
|
|
@@ -19,21 +19,20 @@ module CCS
|
|
|
19
19
|
|
|
20
20
|
public
|
|
21
21
|
|
|
22
|
-
# @param use_gca_branding [Boolean] flag to use GCA branding in logo
|
|
23
22
|
# @param options [Hash] options that will be used in customising the HTML
|
|
24
23
|
#
|
|
25
24
|
# @option options [String] :classes additional CSS classes for the header HTML
|
|
26
25
|
# @option options [String] :container_classes classes for the container
|
|
27
|
-
# @option options [String] :homepage_url URL of the homepage. Defaults to +/https://www.
|
|
26
|
+
# @option options [String] :homepage_url URL of the homepage. Defaults to +/https://www.gca.gov.uk+
|
|
28
27
|
# @option options [Hash] :attributes additional attributes that will added as part of the header HTML
|
|
29
28
|
|
|
30
|
-
def initialize(
|
|
29
|
+
def initialize(**)
|
|
31
30
|
super
|
|
32
31
|
|
|
33
32
|
@options[:container_classes] ||= 'govuk-width-container'
|
|
34
|
-
@options[:homepage_url] ||=
|
|
33
|
+
@options[:homepage_url] ||= 'https://www.gca.gov.uk'
|
|
35
34
|
|
|
36
|
-
@logo = Logo.new(context: @context
|
|
35
|
+
@logo = Logo.new(context: @context)
|
|
37
36
|
end
|
|
38
37
|
|
|
39
38
|
# Generates the HTML for the CCS Header component
|
|
@@ -41,7 +40,7 @@ module CCS
|
|
|
41
40
|
# @return [ActiveSupport::SafeBuffer]
|
|
42
41
|
|
|
43
42
|
def render
|
|
44
|
-
tag.
|
|
43
|
+
tag.div(**options[:attributes]) do
|
|
45
44
|
concat(tag.div(class: "ccs-header__container #{options[:container_classes]}".rstrip) do
|
|
46
45
|
concat(header_logo)
|
|
47
46
|
end)
|
|
@@ -60,7 +59,7 @@ module CCS
|
|
|
60
59
|
|
|
61
60
|
def header_logo
|
|
62
61
|
tag.div(class: 'ccs-header__logo') do
|
|
63
|
-
link_to(logo.render, options[:homepage_url], class: 'ccs-header__link ccs-header__link--homepage', aria: { label: '
|
|
62
|
+
link_to(logo.render, options[:homepage_url], class: 'ccs-header__link ccs-header__link--homepage', aria: { label: 'Government Commercial Agency' })
|
|
64
63
|
end
|
|
65
64
|
end
|
|
66
65
|
end
|
|
@@ -10,27 +10,23 @@ module CCS
|
|
|
10
10
|
#
|
|
11
11
|
# @!attribute [r] show_only_crown
|
|
12
12
|
# @return [Boolean] Flag to show only the crown part of the logo
|
|
13
|
-
# @!attribute [r] use_gca_branding
|
|
14
|
-
# @return [Boolean] Flag to use GCA branding in logo
|
|
15
13
|
|
|
16
14
|
class Logo < Base
|
|
17
15
|
private
|
|
18
16
|
|
|
19
|
-
attr_reader :show_only_crown
|
|
17
|
+
attr_reader :show_only_crown
|
|
20
18
|
|
|
21
19
|
public
|
|
22
20
|
|
|
23
21
|
# @param show_only_crown [Boolean] flag to show only the crown part of the logo
|
|
24
|
-
# @param use_gca_branding [Boolean] flag to use GCA branding in logo
|
|
25
22
|
|
|
26
|
-
def initialize(show_only_crown: nil,
|
|
23
|
+
def initialize(show_only_crown: nil, **)
|
|
27
24
|
super
|
|
28
25
|
|
|
29
26
|
@show_only_crown = show_only_crown
|
|
30
|
-
@use_gca_branding = use_gca_branding
|
|
31
27
|
end
|
|
32
28
|
|
|
33
|
-
# rubocop:disable Metrics/AbcSize
|
|
29
|
+
# rubocop:disable Metrics/AbcSize
|
|
34
30
|
|
|
35
31
|
# Generates the HTML for the CCS Logo.
|
|
36
32
|
# Used in {CCS::Components::CCS::Header Header} and {CCS::Components::CCS::Footer Footer}
|
|
@@ -43,7 +39,7 @@ module CCS
|
|
|
43
39
|
concat(tag.svg(class: 'ccs-logo__svg', xmlns: 'http://www.w3.org/2000/svg', width: '132.22', height: '121', aria: { hidden: 'true' }, focusable: 'false', viewBox: '0 0 371.06668 339.57333') do
|
|
44
40
|
concat(tag.g(transform: 'matrix(1.3333333,0,0,-1.3333333,0,339.57333)') do
|
|
45
41
|
tag.g(transform: 'scale(0.34)') do
|
|
46
|
-
|
|
42
|
+
GCA_LOGO_CROWN_PATHS.each { |ccs_logo_path_attributes| concat(tag.path(**ccs_logo_path_attributes)) }
|
|
47
43
|
end
|
|
48
44
|
end)
|
|
49
45
|
end)
|
|
@@ -51,41 +47,29 @@ module CCS
|
|
|
51
47
|
concat(tag.svg(class: 'ccs-logo__svg ccs-logo__svg--stacked', xmlns: 'http://www.w3.org/2000/svg', width: '132.22', height: '121', aria: { hidden: 'true' }, focusable: 'false', viewBox: '0 0 371.06668 339.57333') do
|
|
52
48
|
concat(tag.g(transform: 'matrix(1.3333333,0,0,-1.3333333,0,339.57333)') do
|
|
53
49
|
tag.g(transform: 'scale(0.1)') do
|
|
54
|
-
|
|
55
|
-
concat(
|
|
50
|
+
GCA_STACKED_LOGO_PATHS.each { |ccs_logo_path_attributes| concat(tag.path(**ccs_logo_path_attributes)) }
|
|
51
|
+
concat(logo_stacked_text_graphic_gca)
|
|
56
52
|
end
|
|
57
53
|
end)
|
|
58
54
|
end)
|
|
59
|
-
|
|
60
|
-
concat(tag.
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
end
|
|
66
|
-
end)
|
|
67
|
-
end)
|
|
68
|
-
concat(tag.span('Government Commercial Agency', class: 'ccs-logo__text', hidden: true))
|
|
69
|
-
else
|
|
70
|
-
concat(tag.svg(class: 'ccs-logo__svg ccs-logo__svg--linear', xmlns: 'http://www.w3.org/2000/svg', width: '320', height: '48.5', aria: { hidden: 'true' }, focusable: 'false', viewBox: '0 0 899 137') do
|
|
71
|
-
concat(tag.g(transform: 'matrix(1.3333333,0,0,-1.3333333,0,137)') do
|
|
72
|
-
tag.g(transform: 'scale(0.1)') do
|
|
73
|
-
CCS_LINEAR_LOGO_PATHS.each { |ccs_logo_path_attributes| concat(tag.path(**ccs_logo_path_attributes)) }
|
|
74
|
-
concat(logo_linear_text_graphic_ccs)
|
|
75
|
-
end
|
|
76
|
-
end)
|
|
55
|
+
concat(tag.svg(class: 'ccs-logo__svg ccs-logo__svg--linear', xmlns: 'http://www.w3.org/2000/svg', width: '378', height: '48.5', aria: { hidden: 'true' }, focusable: 'false', viewBox: '0 0 1061 137') do
|
|
56
|
+
concat(tag.g(transform: 'matrix(1.3333333,0,0,-1.3333333,0,137)') do
|
|
57
|
+
tag.g(transform: 'scale(0.1)') do
|
|
58
|
+
GCA_LINEAR_LOGO_PATHS.each { |ccs_logo_path_attributes| concat(tag.path(**ccs_logo_path_attributes)) }
|
|
59
|
+
concat(logo_linear_text_graphic_gca)
|
|
60
|
+
end
|
|
77
61
|
end)
|
|
78
|
-
|
|
79
|
-
|
|
62
|
+
end)
|
|
63
|
+
concat(tag.span('Government Commercial Agency', class: 'ccs-logo__text', hidden: true))
|
|
80
64
|
end
|
|
81
65
|
end
|
|
82
66
|
end
|
|
83
67
|
|
|
84
|
-
# rubocop:enable Metrics/AbcSize
|
|
68
|
+
# rubocop:enable Metrics/AbcSize
|
|
85
69
|
|
|
86
70
|
# Array of the SVG paths for the CCS Logo
|
|
87
71
|
|
|
88
|
-
|
|
72
|
+
GCA_STACKED_LOGO_PATHS = [
|
|
89
73
|
{
|
|
90
74
|
fill: 'currentColor',
|
|
91
75
|
'fill-rule': 'evenodd',
|
|
@@ -244,7 +228,7 @@ module CCS
|
|
|
244
228
|
{ d: 'm 901.313,1899.86 c 0,0 -3.84,-21.7 -3.598,-23.54 l -6.52,1.17 c -0.109,-0.14 4.012,19.03 5.012,23.19 -2.309,0.49 -5.031,0.25 -7.598,-0.73 l -0.046,0.07 2.613,5.46 17.707,-3.18 1.226,-6.02 c -1.48,1.45 -6.277,3.11 -8.796,3.58 z m -15.485,-1.22 c -0.644,-5.01 -2.988,-15.2 -2.074,-19.95 l -6.559,0.94 c 2.883,7.39 4.86,19.87 4.395,27.78 l 6.558,-0.95 c -1.07,-2.2 -1.843,-4.81 -2.32,-7.82 z m -17.469,-16.55 c -16.757,-3.14 -16.734,25.16 -3.285,29.12 16.828,3.52 16.899,-25.24 3.285,-29.12 z m -14.457,22.33 c -0.812,-3.2 -3.164,-5.4 -7.05,-6.6 1.695,-5.55 2.691,-7.39 5.554,-13.42 l -0.035,-0.14 -4.437,0.69 c -0.918,0.54 -6.489,8.34 -8.149,12.57 -0.972,-3.48 -1.965,-7.93 -1.558,-11.07 l -7.524,1.16 c 1.395,2.18 7.27,25.24 7.047,27.66 6.52,-0.82 18.215,-1.99 16.152,-10.85 z m -32.457,-12.99 c -3.937,-1.38 -9.55,0.17 -13.648,0.97 l 5.504,28.19 c 18.297,1.2 25.875,-22.48 8.144,-29.16 z m -25.972,2.39 c -2.043,0.44 -13.059,22.89 -13.059,22.89 0,0 -2.687,-17.44 -3.371,-18.66 l -5.012,0.72 5.715,27.37 5.555,-0.73 c 0.043,-0.71 8.777,-19.22 8.777,-19.22 0,0 2.922,14.99 3.188,16.33 l 4.242,-1.19 z m -22.993,17.71 c -5.972,-20.23 -29.292,-9.17 -22.351,8.86 5.902,19.61 29.254,9.24 22.351,-8.86 z m -24.363,21.8 c -0.996,-0.92 -4.515,-25.56 -4.281,-27.97 l -6.633,1.3 c 1.188,2.14 2.758,19.32 2.758,19.32 l -11.383,-17.69 -6.687,19.94 c 0,0 -2.711,-14.32 -2.821,-18.93 l -6.507,0.9 c 2.089,3.37 6.175,28.72 6.175,28.72 l 6.731,-1.26 c 0.183,-1.34 5.273,-18.55 5.273,-18.55 0,0 8.961,15.03 9.481,15.8 l 7.914,-1.48 z m 163.403,-17.41 c -8.254,0 -16.098,0.13 -19.93,0.45 -43.449,4.23 -86.449,16.65 -129.797,23.53 -12.504,1.97 -22.73,3.82 -31.594,3.82 -18.406,0.01 -30.918,-7.99 -45.742,-39.56 -6.316,-12.02 14.844,-23.47 19.504,-23.96 -17.387,14.84 -11.328,19.24 2.391,19.24 18.961,0 52.554,-8.4 59.136,-9.23 39.715,-6.31 79.864,-17.68 120.219,-22 1.418,-0.12 2.77,-0.19 4.063,-0.19 29.679,0 28.265,32.37 48.664,48.47 -3.629,-0.33 -15.653,-0.57 -26.914,-0.57' },
|
|
245
229
|
].freeze
|
|
246
230
|
|
|
247
|
-
|
|
231
|
+
GCA_LINEAR_LOGO_PATHS = [
|
|
248
232
|
{
|
|
249
233
|
fill: 'currentColor',
|
|
250
234
|
'fill-rule': 'evenodd',
|
|
@@ -403,7 +387,7 @@ module CCS
|
|
|
403
387
|
{ d: 'M 901.313,204.86 C 901.313,204.86 897.473,183.16 897.715,181.32 L 891.195,182.49 C 891.086,182.35 895.207,201.52 896.207,205.68 C 893.898,206.17 891.176,205.93 888.609,204.95 L 888.563,205.02 L 891.176,210.48 L 908.883,207.3 L 910.109,201.28 C 908.629,202.73 903.832,204.39 901.313,204.86 Z M 885.828,203.64 C 885.184,198.63 882.84,188.44 883.754,183.69 L 877.195,184.63 C 880.078,192.02 882.055,204.5 881.59,212.41 L 888.148,211.46 C 887.078,209.26 886.305,206.65 885.828,203.64 Z M 868.359,187.09 C 851.602,183.95 851.625,212.25 865.074,216.21 C 881.902,219.73 881.973,190.97 868.359,187.09 Z M 853.902,209.42 C 853.09,206.22 850.738,204.02 846.852,202.82 C 848.547,197.27 849.543,195.43 852.406,189.4 L 852.371,189.26 L 847.934,189.95 C 847.016,190.49 841.445,198.29 839.785,202.52 C 838.813,199.04 837.82,194.59 838.227,191.45 L 830.703,192.61 C 832.098,194.79 837.973,217.85 837.75,220.27 C 844.27,219.45 855.965,218.28 853.902,209.42 Z M 821.445,196.43 C 817.508,195.05 811.895,196.6 807.797,197.4 L 813.301,225.59 C 831.598,226.79 839.176,203.11 821.445,196.43 Z M 795.473,198.82 C 793.43,199.26 782.414,221.71 782.414,221.71 C 782.414,221.71 779.727,204.27 779.043,203.05 L 774.031,203.77 L 779.746,231.14 L 785.301,230.41 C 785.344,229.7 794.078,211.19 794.078,211.19 C 794.078,211.19 797,226.18 797.266,227.52 L 801.508,226.33 Z M 772.48,216.53 C 766.508,196.3 743.188,207.36 750.129,225.39 C 756.031,245 779.383,234.63 772.48,216.53 Z M 748.117,238.33 C 747.121,237.41 743.602,212.77 743.836,210.36 L 737.203,211.66 C 738.391,213.8 739.961,230.98 739.961,230.98 L 728.578,213.29 L 721.891,233.23 C 721.891,233.23 719.18,218.91 719.07,214.3 L 712.563,215.2 C 714.652,218.57 718.738,243.92 718.738,243.92 L 725.469,242.66 C 725.652,241.32 730.742,224.11 730.742,224.11 C 730.742,224.11 739.703,239.14 740.223,239.91 L 748.137,238.43 Z M 911.52,220.92 C 903.266,220.92 895.422,221.05 891.59,221.37 C 848.141,225.6 805.141,238.02 761.793,244.9 C 749.289,246.87 739.063,248.72 730.199,248.72 C 711.793,248.73 699.281,240.73 684.457,209.16 C 678.141,197.14 699.301,185.69 703.961,185.2 C 686.574,200.04 692.633,204.44 706.352,204.44 C 725.313,204.44 758.906,196.04 765.488,195.21 C 805.203,188.9 845.352,177.53 885.707,173.21 C 887.125,173.09 888.477,173.02 889.77,173.02 C 919.449,173.02 918.035,205.39 938.434,221.49 C 934.805,221.16 922.781,220.92 911.52,220.92' },
|
|
404
388
|
].freeze
|
|
405
389
|
|
|
406
|
-
|
|
390
|
+
GCA_LOGO_CROWN_PATHS = [
|
|
407
391
|
{ d: 'M 714.047,345.87 C 711.293,346.13 709.012,343.71 709.93,340.75 C 709.656,340.79 709.391,340.87 709.145,341.04 L 696.324,349.79 C 695.492,350.36 695.238,351.52 695.691,352.44 C 698.105,352.54 700.719,353.79 700.387,356.7 C 701.375,355.45 715.168,348.1 714.047,345.87 Z M 666.918,390.38 C 666.164,389.44 664.586,387.45 664.586,387.45 C 650.383,403.66 602.453,422.27 581.742,419.23 C 581.742,419.23 581.996,421.63 582.129,422.93 L 581.98,422.85 L 589.852,427.86 L 583.121,433.43 C 583.188,434.21 578.816,461.48 578.816,461.48 L 590.688,461.84 C 590.688,461.84 586.449,456.86 586.266,452.93 C 586.938,452.46 587.508,451.79 587.906,450.96 C 590.281,451.97 592.828,456.89 592.828,456.89 L 593.957,440.77 C 593.957,440.77 590.656,445.42 588.258,446.25 C 588.074,445.66 587.816,445.11 587.395,444.66 C 590.824,433.96 606.449,433.33 606.469,442.5 C 605.934,447.26 600.676,446.47 600.965,441.45 C 592.406,448.25 603.977,459.09 608.734,448.17 C 608.125,454.46 608.66,458.02 613.543,461.12 C 616.766,457.04 616.316,453.21 612.82,447.11 C 623.328,456.86 627.34,440.32 617.473,437.88 C 622.289,446.58 608.43,443.84 613.52,434.73 C 618.176,427.63 629.465,428.67 633.426,436.39 C 633.145,436.86 632.941,437.36 632.836,437.88 C 628.902,438.63 623.027,435.28 623.027,435.28 L 628.504,450.14 C 628.504,450.14 630.777,443.78 634.074,441.8 C 634.668,442.36 635.422,442.75 636.238,442.95 C 636.867,446.86 632.918,453 632.918,453 L 651.164,445.96 C 651.164,445.96 643.949,444.13 641.637,440.86 C 642.09,440.18 642.367,439.39 642.398,438.59 C 646.199,437.83 652.355,440.94 652.355,440.94 L 645.816,426.48 C 645.816,426.48 643.918,432.84 640.523,434.91 C 640.078,434.6 639.582,434.37 639.047,434.23 C 636.449,425.84 644.043,417.7 652.348,419.75 C 662.402,422.83 654.422,434.26 651.695,424.67 C 646.258,433.08 660.898,442.33 661.605,428.28 C 663.383,435.05 665.77,438.13 670.996,438.94 C 672.352,433.44 670.219,430.49 665.328,426.33 C 676.613,431.09 677.133,415.43 666.219,416.26 C 670.012,419.77 666.668,423.79 662.961,420.69 C 656.441,413.88 668.637,404.15 678.18,409 C 678.156,409.61 678.328,410.2 678.598,410.73 C 676.227,412.39 670.609,412.56 670.609,412.56 L 682.301,421.23 C 682.301,421.23 680.91,415.98 682.023,413.24 C 682.883,413.38 683.77,413.28 684.586,412.95 C 687.094,415.48 687.242,422.27 687.242,422.27 L 695.965,411.4 C 695.965,411.4 674.063,401.31 670.191,398.38 L 664.098,398.98 L 667.105,390.41 Z M 602.496,469.53 C 606.137,468.23 609.59,466.31 613.281,469.97 C 609.738,469.98 608.66,472.46 607.641,474.83 C 605.918,486.9 625.613,482.64 632.945,481.78 C 651.422,470.54 682.852,477.7 671.93,504.43 C 680.477,499.15 677.539,484.5 671.051,478.79 C 653.973,469.55 637.793,476.5 620.742,458.43 C 618.145,466.69 608.332,466.23 604.813,457.13 C 601.563,456.91 600.719,456.96 597.621,456.76 C 597.055,461.56 600.941,465.01 602.496,469.53 Z M 648.133,515.9 C 642.668,512.16 637.766,506.64 632.199,514.12 C 630.91,513.86 629.848,513.65 628.527,513.39 C 636.777,526.17 636.098,523.97 648.133,515.9 Z M 666.719,545.12 C 670.777,540.61 672.551,535.73 672.547,530.19 C 668.637,531.55 666.934,535.82 666.719,545.12 Z M 496.609,472.68 L 517.262,480.04 L 524.82,464.79 L 510.488,455.67 Z M 483.336,476.29 C 480.707,460.52 445.328,467.33 448.742,482.95 C 451.371,498.71 486.746,491.91 483.336,476.29 Z M 413,469.43 L 390.918,485 L 413.031,500.61 L 435.113,485.04 Z M 362.352,467.5 C 339.938,462.96 335.188,487.63 357.688,491.73 C 380.102,496.27 384.852,471.6 362.352,467.5 Z M 315.57,455.67 L 301.238,464.79 L 308.801,480.04 L 329.449,472.68 Z M 587.789,505.23 C 589.563,505.42 591.027,505.58 593.012,505.79 C 589.586,508.28 592.938,511.7 595.773,509.27 C 602.566,504 588.953,495.38 587.789,505.23 Z M 724.68,328.32 L 722.773,328.55 L 717.719,342.29 C 720.086,345.33 721.363,350.2 717.629,352.67 C 712.688,354.62 698.758,370.55 694.629,360.24 C 692.852,359.61 681.82,358.97 680.961,356.92 C 675.664,365.3 671.188,374.2 667.891,384.1 C 670.035,395.6 700.469,409.93 700.469,409.93 C 700.469,409.93 691.824,422.36 688.375,429.36 C 686.844,425.94 685.441,427.4 682.109,425.88 C 699.016,455.91 702.605,495.43 680.238,523.8 C 677.945,528.72 679,535.21 676.75,540.04 C 672.871,545.15 670.191,555.23 663.336,556.3 C 663.305,547.38 662.387,538.65 666.695,530.38 C 671.285,524.62 660.438,519.74 657.059,524.29 C 663.535,525.04 664.633,526.33 662.395,529.99 C 634.473,536.25 618.867,516.64 592.23,513.56 C 589.887,513.58 587.793,512.75 586.473,510.6 C 570.063,488.49 606.891,503.59 610.098,488.93 C 603.949,483.85 603.098,487.19 597.336,488.66 C 589.039,488.35 581,485.75 591.348,478.74 C 585.031,468.82 585.34,465.32 572.492,464.48 C 578.063,456.61 576.863,445.24 578.32,436.32 C 569.168,434.6 562.945,430.19 562.762,420.41 C 558.641,419.49 554.199,421.64 551.27,417.2 C 545.508,421.97 538.891,422.84 531.984,422.95 C 528.652,425.44 520.48,431.32 511.707,435.82 C 513.441,442.31 515.09,448.39 516.652,454.08 C 519.223,455.72 528.445,461.59 530.84,463.11 C 529.605,465.6 524.738,475.42 523.418,478.09 C 539.867,534.7 545.211,537.86 553.535,539.09 L 553.984,540.66 L 523.543,550.41 L 523.012,548.42 C 530.695,542.84 533.195,533.57 529.695,522.72 C 521.563,526.23 516.93,533.93 517.809,540.81 C 517.652,540.86 515.797,541.39 515.797,541.39 L 505.609,507.58 C 505.609,507.58 507.078,507.14 507.234,507.09 C 511.238,512.88 518.215,516.13 526.281,514.79 C 516.875,484.82 474.496,494.17 482.082,519.61 C 487.48,530.1 497.734,523.37 492.797,512.38 C 516.57,520.71 502.547,554.92 482.211,534.52 C 488.934,548.29 492.754,559.1 484.313,572.42 C 473.363,565.38 470.563,552.65 472.66,535.68 C 459.246,566.37 435.836,534.75 454.867,518.77 C 451.402,541.54 479.512,526.49 460.492,508.14 C 442.359,495.3 420.063,510.05 419.418,532.7 C 429.887,531.77 437.887,525.55 438.965,517.79 C 439.148,517.78 440.887,517.72 440.887,517.72 L 442.188,556.38 C 442.188,556.38 440,556.48 439.813,556.48 C 438.184,548.66 429.684,542.02 418.922,541.82 C 419.656,553.74 426.488,563.03 435.332,564.55 C 435.332,564.76 435.332,566.76 435.332,566.76 L 390.727,566.76 C 390.727,566.76 390.727,564.76 390.727,564.55 C 399.57,563.03 406.402,553.74 407.137,541.82 C 396.375,542.02 387.875,548.66 386.246,556.48 C 386.059,556.48 383.871,556.38 383.871,556.38 L 385.172,517.72 C 385.172,517.72 386.91,517.78 387.094,517.79 C 388.172,525.55 396.172,531.77 406.641,532.7 C 406.012,510.06 383.688,495.29 365.563,508.14 C 346.551,526.5 374.656,541.53 371.191,518.77 C 390.234,534.8 366.785,566.35 353.398,535.68 C 355.496,552.65 352.695,565.38 341.746,572.42 C 333.305,559.1 337.129,548.29 343.848,534.52 C 323.48,554.93 309.516,520.67 333.262,512.38 C 328.324,523.37 338.574,530.1 343.973,519.61 C 351.563,494.15 309.168,484.84 299.777,514.79 C 307.848,516.13 314.82,512.88 318.824,507.09 C 318.98,507.14 320.449,507.58 320.449,507.58 L 310.262,541.39 C 310.262,541.39 308.406,540.86 308.25,540.81 C 309.129,533.93 304.496,526.23 296.363,522.72 C 292.863,533.57 295.363,542.84 303.047,548.42 L 302.516,550.41 L 272.074,540.66 L 272.523,539.09 C 280.848,537.86 286.191,534.7 302.641,478.09 C 301.293,475.36 296.477,465.65 295.219,463.11 C 297.563,461.62 306.891,455.68 309.406,454.08 C 310.832,448.89 312.328,443.37 313.898,437.52 C 313.957,437.55 314.02,437.57 314.078,437.61 C 314.008,437.4 313.945,437.34 313.898,437.52 C 272.938,418.37 282.223,405.36 250.711,409.1 C 247.887,402.58 245.25,396.12 238.84,391.69 C 237.652,401.68 233.199,409.43 227.328,416.5 C 224.418,419.89 220.434,416.14 216.086,415.8 C 207.539,397.16 201.629,414 186.563,404.25 C 187.156,395.56 188.473,386.92 193.242,378.9 C 182.035,379.69 172.785,382.72 165.379,387.98 C 131.883,350.56 96.91,314.63 68.262,273.47 C 52.969,253.26 12.059,265.01 22.852,292.86 C 27.801,313.19 57.168,308.86 55.309,288.69 C 69.824,304.82 60.496,320.88 38.316,317.29 C 58.676,326.09 70.891,309.43 89.246,332.33 C 75.23,331.99 63.336,336.44 49.367,333.21 C 67.055,343.8 91.348,328.08 106.449,357.31 C 93.289,355.9 81.391,350.4 67.773,348.38 C 149.5,426.29 70.867,430.14 80.863,463.82 C 74.477,458.4 70.797,452.97 73.75,445.7 C 55.445,453.34 28.305,451.09 20.891,473.34 C 19.098,441.66 33.016,443.93 56.93,437.41 C 45.891,438.73 34.996,438.81 24.66,442.63 C 26.793,428.43 37.566,425.41 50.242,426.77 C 37.836,419.88 40.656,402.21 53.281,396.14 C 45.227,441.96 113.844,426.25 82.508,384.16 C 67.961,362.48 46.914,346.36 29.227,327.42 C 25.891,333.18 22.41,338.97 14.684,338.15 C 28.156,322.6 12.949,305.69 9.383,289.64 C 4.18,269.81 21.695,252.93 40.473,250.61 C 32.992,241.75 32.391,233.86 38.152,226.61 C 43.809,255.74 86.051,249.17 90.035,280.69 C 90.754,284.4 92.527,287.3 96.672,289 C 77.637,267.48 123.41,221.91 80.406,216.59 C 74.27,216.42 72.742,209.96 76.156,205.37 C 58.383,206.26 53.48,199.5 50.77,182.76 C 58.609,184.79 65.891,186.67 73.254,188.57 C 65.516,168.3 47.957,189.75 50.848,153.69 C 58.023,157.13 64.77,160.77 71.344,164.84 C 77.691,144.6 39.145,153.35 68.082,121.04 C 69.926,127.07 77.652,139.43 81.594,142.18 C 78.02,132.01 78.871,120.24 90.281,115.68 C 90.813,118.39 91.285,120.79 91.758,123.19 C 92.277,123.2 92.188,123.2 92.711,123.21 C 94.348,116.5 94.586,107.1 101.102,103.23 C 103.258,102.37 104.422,101.18 105.137,98.91 C 106.324,95.16 109.809,94.16 113.199,93.71 C 117.461,92.83 118.539,97.66 121.672,99.61 C 122.566,94.28 128.867,93.43 131.957,88.89 C 134.332,115.17 99.469,105.63 107.461,123 C 110.547,112.41 120.441,114.72 127.352,110.38 C 130.027,105.98 136.563,102.34 139.898,108.45 C 143.148,106.01 146.086,103.81 148.949,101.66 C 142.145,132.88 125.961,113.57 115.77,129.96 C 122.867,129.64 130.453,119.11 138.113,126.3 C 142.238,122.06 145.422,117.08 148.531,112.07 C 149.785,122.05 146.063,129.66 138.207,135.21 C 129.348,140.64 117.32,131 109.746,141.83 C 99.395,154.61 99.691,172.54 105.078,187.33 C 110.02,198.7 123.793,202.95 130.148,213.73 C 128.379,204.21 129.27,187.66 140.047,184.58 C 137.43,202.25 149.992,218.17 152.535,235.25 C 155.813,239.56 155.973,242.93 153.004,247.59 C 147.656,256.36 146.191,266.93 140.273,275.57 C 131.102,288.43 119.801,288.79 138.508,302.35 C 127.148,284.72 136.422,291.14 146.223,274.53 C 148.035,280.13 156.391,287.43 145.945,287.4 C 129.457,295.49 167.406,316.53 175.977,317.07 C 184.43,317.73 196.293,316.78 202.699,325.14 C 198.691,332.75 194.801,333.83 201.625,341.74 C 197.016,344.43 192.949,347.64 192.152,353.7 C 187.762,352.17 183.891,350.82 179.336,349.24 C 183.484,353.94 195.688,363.42 197.012,352.91 C 197.297,347.01 203.156,345.95 207.715,344.48 C 204.391,339.64 198.859,334.77 203.898,329.11 C 207.422,325.41 209.613,318.44 215.031,317.53 C 216.5,323.01 217.906,328.27 219.355,333.68 C 231.359,321.09 207.301,314.07 240.277,302.76 C 239.074,309.57 238.004,316.14 238.887,323.18 C 254.781,309.9 232.051,301.57 268.656,297.23 C 264.578,302.07 263.637,307.43 262.133,312.84 C 268.238,311.84 273.176,306 277.121,301.61 C 280.891,295.88 283.668,292.74 292.281,298.34 C 292.668,297.34 292.762,295.96 293.492,295.4 C 297.359,292.46 295.809,288.89 295.727,284.97 L 296.785,284.97 C 301.875,290.11 302.234,296 300.648,302.44 C 297.113,314.56 282.316,304.91 277.133,317.29 C 284.117,312.53 291.07,309.75 298.758,313.73 C 303.051,309.69 304.848,306.73 306.926,301 C 310.438,314.06 306.398,327.39 292.605,323.47 C 288.316,321.94 286.555,322.29 282.242,326.03 C 288.648,323.81 292.879,327.09 296.965,330.02 C 297.852,328.88 298.371,327.58 298.969,327.54 C 302.848,327.32 305.367,324.98 307.754,322.12 C 309.047,333.29 297.941,342.32 286.762,339.48 C 283.973,325.79 272.473,333.54 263.359,335.36 C 249.199,343.65 241.762,359.52 229.238,369.87 C 230.488,385.23 217.703,397.46 202.328,396.57 C 216.188,402.62 232.633,390.71 233.711,376.25 C 234.23,370.34 237.84,366.61 241.582,362.19 C 288.406,456.36 439.555,480.98 526.34,421.21 L 526.332,421.21 C 533.723,414.44 541.762,408.91 549.426,401.78 C 552.414,410.77 550.641,421.47 564.055,416.02 L 566.566,417.72 C 563.828,425.32 569.512,433.92 577.484,434.48 L 577.484,428.55 C 573.992,427.98 571.281,424.59 571.844,420.96 C 574.516,421.53 576.953,418.01 575.5,415.7 C 578.004,414.28 581.543,414.86 583.48,416.9 C 585.711,416.79 587.934,416.57 590.156,416.35 C 587.102,409.09 576.508,406.62 570.551,411.94 L 570.527,411.92 C 571.676,410.34 566.535,394.34 566.316,392.44 C 565.711,390.1 563.535,388.57 561.211,388.68 C 562.164,387.11 562.953,385.82 563.816,384.4 C 567.613,386.52 572.922,386.39 572.43,391.77 C 573.148,394.82 571.184,408.88 575.547,407.63 C 577.316,402.3 573.98,396.12 577.938,390.86 C 590.457,393.95 584.965,405.29 600.152,408.25 C 606.188,408.79 618.895,411.71 622.148,405.69 C 608.883,409.25 591.742,405.6 588.836,390.45 C 575.027,387.19 563.438,377.34 548.742,377.35 C 537.066,376.71 533.93,362.69 533.434,353.08 C 531.492,342.05 530.895,330.61 525.98,320.38 C 523.57,316.47 525.594,311.98 526.914,308.35 C 531.391,306 534.578,290.48 535.219,284.94 C 535.191,274.82 552.543,271.44 559.605,265.14 C 561.57,277.82 537.555,274.22 540.926,291.93 C 545.195,280.21 554.52,277.79 564.738,272.02 C 561.543,283.89 560.578,303.63 544.023,301.15 C 537.633,310.03 546.977,310.53 543.969,321.11 C 548.719,319.63 550.973,317.98 552.234,315.02 C 550.758,315.5 549.469,315.91 547.434,316.56 C 547.988,309.05 554.488,307.28 559.492,302.12 C 558.652,314.41 557.555,322.18 546.121,328.17 C 539.637,334.11 547.113,347.76 546.68,355.96 C 546.469,358.38 561.98,366.1 564.352,365.41 C 575.848,363.91 587.895,365.75 599.02,362.85 C 610.113,359.35 600.59,383.45 618.52,370.77 C 605.531,374.59 613.441,360.42 604.063,359.69 C 597.512,359.62 591.945,360.25 585.121,360.48 C 608.688,308.03 660.961,323.4 675.34,276.59 C 687.367,287.21 679.184,287.03 675.82,298.14 C 702.98,280.03 650.535,259.05 670.23,227.33 C 668.984,230.89 681.313,245.76 682.715,248.79 C 684.961,252.12 688.773,252.34 691.238,249.91 L 695.16,258.07 C 687.855,262.07 701.074,279.22 702.043,284.1 C 703.414,287.04 706.52,288.43 708.973,287.21 L 712.625,297.38 C 705.719,299.24 710.895,316.01 710.348,320.68 C 700.637,329.45 692.676,340.46 685.145,350.64 L 689.797,351.44 C 689.27,349.14 690.098,346.64 692.047,345.3 C 695.387,343.98 708.156,331.66 712.168,334.59 L 714.172,329.14 C 710.945,328.27 710.379,323.73 710.348,320.68 C 712.066,319.23 713.918,317.87 715.594,316.36 C 715.836,317.45 715.652,322.44 716.641,323.18 C 718.152,321.18 720.918,321.17 722.59,322.77 C 724.156,321.95 722.199,311.12 722.391,309.75 C 724.266,307.71 726.051,305.6 727.734,303.4 C 727.031,308.38 733.145,327.39 724.68,328.32' },
|
|
408
392
|
{ d: 'M 559.324,408.18 C 558.344,409.34 558.105,411.02 558.965,412.26 C 557.414,412.58 554.82,398.14 554.293,397.32 C 555.336,396.3 556.266,395.33 557.129,394.32 C 558.473,393.93 560.777,393.14 561.254,395.12 L 564.543,407.86 C 563.012,406.47 560.551,406.34 559.324,408.18' },
|
|
409
393
|
{ d: 'M 366.449,47.39 C 330.223,61.74 303.871,26.64 333.457,20.71 C 300.996,19.3 307.262,64.99 293.863,62.28 C 305.609,49.63 305.602,26.05 316.422,19.53 C 338.242,10.26 360.922,8.74 384.293,9.83 C 372.523,20.27 369.66,33.44 366.449,47.39' },
|
|
@@ -559,20 +543,6 @@ module CCS
|
|
|
559
543
|
|
|
560
544
|
private
|
|
561
545
|
|
|
562
|
-
def logo_stacked_text_graphic_ccs
|
|
563
|
-
tag.g(transform: 'scale(10)') do
|
|
564
|
-
tag.text(
|
|
565
|
-
'xml:space': 'preserve',
|
|
566
|
-
transform: 'matrix(1,0,0,-1,20.3102,129.569)',
|
|
567
|
-
class: 'ccs-logo__text-graphic'
|
|
568
|
-
) do
|
|
569
|
-
concat(tag.tspan('Crown ', x: '0 33.2603 47.4161 72.572395 107.4747 133.2486', y: '0', 'sodipodi:role': 'line'))
|
|
570
|
-
concat(tag.tspan('Commercial ', x: '0 33.314499 59.416096 99.105995 138.7959 163.4126 177.5981 201.77882 210.5835 234.9653 244.37253', y: '53', 'sodipodi:role': 'line'))
|
|
571
|
-
concat(tag.tspan('Service ', x: '0 29.747601 54.364799 70.161697 92.368706 101.25151 125.55521', y: '106', 'sodipodi:role': 'line'))
|
|
572
|
-
end
|
|
573
|
-
end
|
|
574
|
-
end
|
|
575
|
-
|
|
576
546
|
def logo_stacked_text_graphic_gca
|
|
577
547
|
tag.g(transform: 'scale(10)') do
|
|
578
548
|
tag.text(
|
|
@@ -587,18 +557,6 @@ module CCS
|
|
|
587
557
|
end
|
|
588
558
|
end
|
|
589
559
|
|
|
590
|
-
def logo_linear_text_graphic_ccs
|
|
591
|
-
tag.g(transform: 'scale(10)') do
|
|
592
|
-
tag.text(
|
|
593
|
-
'xml:space': 'preserve',
|
|
594
|
-
transform: 'matrix(1,0,0,-1,120,30)',
|
|
595
|
-
class: 'ccs-logo__text-graphic'
|
|
596
|
-
) do
|
|
597
|
-
concat(tag.tspan('Crown Commercial Service', x: '0 33.2603 47.4161 72.572395 107.4747 133.2486 143.2486 176.5631 202.6647 242.3546 282.0445 306.6612 320.8467 345.0274 353.8321 378.2139 387.6211 397.6211 427.3687 451.9859 467.7828 489.9898 498.8726 523.1763', y: '0', 'sodipodi:role': 'line'))
|
|
598
|
-
end
|
|
599
|
-
end
|
|
600
|
-
end
|
|
601
|
-
|
|
602
560
|
def logo_linear_text_graphic_gca
|
|
603
561
|
tag.g(transform: 'scale(10)') do
|
|
604
562
|
tag.text(
|
|
@@ -35,7 +35,6 @@ module CCS
|
|
|
35
35
|
# @option options [String] :container_class classes that can be added to the inner container
|
|
36
36
|
# @option options [ActiveSupport::SafeBuffer,String] :content_licence The content licence information, see {CCS::Components::GovUK::Footer#footer_content_licence footer_content_licence} for default
|
|
37
37
|
# @option options [ActiveSupport::SafeBuffer,String] :copyright The copyright information, (default: '© Crown copyright')
|
|
38
|
-
# @option options [Boolean] :rebrand flag to use the rebrand footer which includes the logo
|
|
39
38
|
# @option options [Hash] :attributes additional attributes that will added as part of the HTML
|
|
40
39
|
|
|
41
40
|
def initialize(navigation: nil, meta: nil, **)
|
|
@@ -43,7 +42,7 @@ module CCS
|
|
|
43
42
|
|
|
44
43
|
@options[:copyright] ||= '© Crown copyright'
|
|
45
44
|
|
|
46
|
-
@logo = Logo.new(
|
|
45
|
+
@logo = Logo.new(use_logotype: false, classes: 'govuk-footer__crown', context: @context)
|
|
47
46
|
@navigation = navigation&.map { |navigation_item| Navigation.new(context: @context, **navigation_item) }
|
|
48
47
|
@meta = Meta.new(context: @context, **meta) if meta
|
|
49
48
|
end
|
|
@@ -55,7 +54,7 @@ module CCS
|
|
|
55
54
|
# @return [ActiveSupport::SafeBuffer]
|
|
56
55
|
|
|
57
56
|
def render
|
|
58
|
-
tag.
|
|
57
|
+
tag.div(**options[:attributes]) do
|
|
59
58
|
tag.div(class: "govuk-width-container #{options[:container_classes]}".rstrip) do
|
|
60
59
|
concat(logo.render) if logo
|
|
61
60
|
if navigation.present?
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
require_relative '../base'
|
|
2
|
-
require_relative 'header/navigation'
|
|
3
2
|
require_relative 'logo'
|
|
4
3
|
|
|
5
4
|
module CCS
|
|
@@ -38,20 +37,15 @@ module CCS
|
|
|
38
37
|
# @option options [String] :container_classes classes for the container
|
|
39
38
|
# @option options [String] :homepage_url URL of the homepage. Defaults to +/+
|
|
40
39
|
# @option options [String] :product_name product name, used when the product name follows on directly from ‘GOV.UK
|
|
41
|
-
# @option options [Boolean] :use_tudor_crown flag to use the new tudor crown for the GOV.UK Logo
|
|
42
|
-
# @option options [Boolean] :rebrand flag to use the rebrand logo
|
|
43
40
|
# @option options [Hash] :attributes additional attributes that will added as part of the header HTML
|
|
44
41
|
|
|
45
|
-
def initialize(
|
|
46
|
-
super
|
|
42
|
+
def initialize(**)
|
|
43
|
+
super
|
|
47
44
|
|
|
48
45
|
@options[:container_classes] ||= 'govuk-width-container'
|
|
49
|
-
@options[:homepage_url] ||= '
|
|
50
|
-
@options[:use_tudor_crown] = true if @options[:use_tudor_crown].nil?
|
|
46
|
+
@options[:homepage_url] ||= '//gov.uk'
|
|
51
47
|
|
|
52
|
-
@logo = Logo.new(
|
|
53
|
-
@navigation = Navigation.new(navigation: navigation, menu_button: menu_button, context: @context) if navigation && navigation[:items].present?
|
|
54
|
-
@service = service
|
|
48
|
+
@logo = Logo.new(classes: 'govuk-header__logotype', attributes: { aria: { label: 'GOV.UK' } }, context: @context)
|
|
55
49
|
end
|
|
56
50
|
|
|
57
51
|
# Generates the HTML for the GOV.UK Header component
|
|
@@ -59,22 +53,16 @@ module CCS
|
|
|
59
53
|
# @return [ActiveSupport::SafeBuffer]
|
|
60
54
|
|
|
61
55
|
def render
|
|
62
|
-
tag.
|
|
56
|
+
tag.div(**options[:attributes]) do
|
|
63
57
|
tag.div(class: "govuk-header__container #{options[:container_classes]}") do
|
|
64
58
|
concat(header_logo)
|
|
65
|
-
if service || navigation
|
|
66
|
-
concat(tag.div(class: 'govuk-header__content') do
|
|
67
|
-
concat(header_service_name) if service
|
|
68
|
-
concat(navigation.render) if navigation
|
|
69
|
-
end)
|
|
70
|
-
end
|
|
71
59
|
end
|
|
72
60
|
end
|
|
73
61
|
end
|
|
74
62
|
|
|
75
63
|
# The default attributes for the breadcrumbs
|
|
76
64
|
|
|
77
|
-
DEFAULT_ATTRIBUTES = { class: 'govuk-header'
|
|
65
|
+
DEFAULT_ATTRIBUTES = { class: 'govuk-header' }.freeze
|
|
78
66
|
|
|
79
67
|
private
|
|
80
68
|
|
|
@@ -84,24 +72,12 @@ module CCS
|
|
|
84
72
|
|
|
85
73
|
def header_logo
|
|
86
74
|
tag.div(class: 'govuk-header__logo') do
|
|
87
|
-
link_to(options[:homepage_url], class: 'govuk-
|
|
75
|
+
link_to(options[:homepage_url], class: 'govuk-header__homepage-link') do
|
|
88
76
|
concat(logo.render)
|
|
89
77
|
concat(tag.span(options[:product_name], class: 'govuk-header__product-name')) if options[:product_name]
|
|
90
78
|
end
|
|
91
79
|
end
|
|
92
80
|
end
|
|
93
|
-
|
|
94
|
-
# Generates the service name section
|
|
95
|
-
#
|
|
96
|
-
# @return [ActiveSupport::SafeBuffer]
|
|
97
|
-
|
|
98
|
-
def header_service_name
|
|
99
|
-
if service[:href]
|
|
100
|
-
link_to(service[:name], service[:href], class: 'govuk-header__link govuk-header__service-name')
|
|
101
|
-
else
|
|
102
|
-
tag.span(service[:name], class: 'govuk-header__service-name')
|
|
103
|
-
end
|
|
104
|
-
end
|
|
105
81
|
end
|
|
106
82
|
end
|
|
107
83
|
end
|
|
@@ -8,12 +8,8 @@ module CCS
|
|
|
8
8
|
# This is used to generate the logo component from the
|
|
9
9
|
# {https://github.com/alphagov/govuk-frontend/blob/main/packages/govuk-frontend/src/govuk/macros/logo.njk GDS - Macros - Logo}
|
|
10
10
|
#
|
|
11
|
-
# @!attribute [r] rebrand
|
|
12
|
-
# @return [Boolean] flag for rebrand
|
|
13
11
|
# @!attribute [r] use_logotype
|
|
14
12
|
# @return [Boolean] flag for logotype
|
|
15
|
-
# @!attribute [r] use_tudor_crown
|
|
16
|
-
# @return [Boolean] flag for tudor crown
|
|
17
13
|
|
|
18
14
|
class Logo < Base
|
|
19
15
|
include ActionView::Context
|
|
@@ -21,27 +17,23 @@ module CCS
|
|
|
21
17
|
|
|
22
18
|
private
|
|
23
19
|
|
|
24
|
-
attr_reader :
|
|
20
|
+
attr_reader :use_logotype
|
|
25
21
|
|
|
26
22
|
public
|
|
27
23
|
|
|
28
|
-
# @param rebrand [Boolean] Flag for rebrand
|
|
29
24
|
# @param use_logotype [Boolean] Flag for logotyp
|
|
30
|
-
# @param use_tudor_crown [Boolean] Flag for tudor crown
|
|
31
25
|
# @param options [Hash] options that will be used in customising the HTML
|
|
32
26
|
#
|
|
33
27
|
# @option options [String] :classes additional CSS classes for the logo HTML
|
|
34
28
|
# @option options [Hash] :attributes additional attributes that will added as part of the logo HTML
|
|
35
29
|
|
|
36
|
-
def initialize(
|
|
30
|
+
def initialize(use_logotype: true, **)
|
|
37
31
|
super(**)
|
|
38
32
|
|
|
39
|
-
@rebrand = rebrand
|
|
40
33
|
@use_logotype = use_logotype
|
|
41
|
-
@use_tudor_crown = rebrand ? true : use_tudor_crown
|
|
42
34
|
|
|
43
|
-
svg_width =
|
|
44
|
-
svg_width
|
|
35
|
+
svg_width = 32
|
|
36
|
+
svg_width += 130 if @use_logotype
|
|
45
37
|
|
|
46
38
|
@options[:attributes][:focusable] = 'false'
|
|
47
39
|
@options[:attributes][:role] = @options[:attributes].dig(:aria, :label) ? 'img' : 'presentation'
|
|
@@ -59,8 +51,8 @@ module CCS
|
|
|
59
51
|
def render
|
|
60
52
|
tag.svg(**options[:attributes]) do
|
|
61
53
|
concat(tag.title(@options[:attributes].dig(:aria, :label))) if @options[:attributes].dig(:aria, :label)
|
|
62
|
-
concat(
|
|
63
|
-
concat(
|
|
54
|
+
concat(tudor_crown)
|
|
55
|
+
concat(logotype) if use_logotype
|
|
64
56
|
end
|
|
65
57
|
end
|
|
66
58
|
|
|
@@ -70,14 +62,6 @@ module CCS
|
|
|
70
62
|
|
|
71
63
|
private
|
|
72
64
|
|
|
73
|
-
# Generates the St Edwards Crown HTML
|
|
74
|
-
#
|
|
75
|
-
# @return [ActiveSupport::SafeBuffer]
|
|
76
|
-
|
|
77
|
-
def st_edwards_crown
|
|
78
|
-
tag.path(d: 'M13.4,22.3c2,.8,4.2-.2,5-2s-.2-4.2-2-5c-2-.8-4.2.2-5,2-.8,2,0,4.2,2,5M4.8,27.3c2,.8,4.2-.2,5-2s-.2-4.2-2-5c-2-.8-4.2.2-5,2-1,2,0,4.2,2,5M2.2,36.9c2,.8,4.2-.2,5-2,.8-2-.2-4.2-2-5-2-.8-4.2.2-5,2-.8,2,0,4.2,2,5M23,25.3c2,.8,4.2-.2,5-2s-.2-4.2-2-5c-2-.8-4.2.2-5,2s0,4.2,2,5M57.8,22.3c-2,.8-4.2-.2-5-2s.2-4.2,2-5c2-.8,4.2.2,5,2,1,2,0,4.2-2,5M66.4,27.3c-2,.8-4.2-.2-5-2s.2-4.2,2-5c2-.8,4.2.2,5,2,1,2,0,4.2-2,5M69,36.9c-2,.8-4.2-.2-5-2-.8-2,.2-4.2,2-5,2-.8,4.2.2,5,2,.8,2,0,4.2-2,5M48.2,25.3c-2,.8-4.2-.2-5-2s.2-4.2,2-5c2-.8,4.2.2,5,2s0,4.2-2,5M37.6,15.5l4.8,2.6v-7.2l-4.8,1.6c-.2-.2-.2-.4-.4-.4s2-6,2-6h-6.8l2,6c-.2.2-.4.2-.4.4-.2.2-4.8-1.4-4.8-1.4v7l4.8-2.6c-.2.2,0,.4.2.6l-2.8,8.4c-.2.4-.2.8-.2,1.4,0,2.2,1.6,4.2,3.8,4.4h1.2c2.2-.4,3.8-2.2,3.8-4.4s0-.8-.2-1.4l-2.8-8.4c.4-.2.6-.4.6-.6M35.6,56.1c9.2,0,17.8.6,25.6,1.8,2.2-9.2,4.8-14.4,7.6-18.2l-5.2-1.8c.6,2.6.6,3.8,0,5.6-.8-.8-1.6-2.4-2.2-4.8l-2.4,8.4c1.6-1,2.8-1.8,4-1.8-2.4,5.2-5.4,6.4-7.2,6-2.4-.4-3.4-2.6-3-4.4.6-2.6,3.2-3.2,4.4-.2,2.4-4.8-1.6-6.2-4.2-4.8,3.8-3.8,4.4-7.2,1.2-11.4-4.4,3.4-4.4,6.6-2.4,11.2-2.6-3-6.6-1.4-5,3.4,1.8-2.8,4.2-1,4,1.6-.4,2.4-3.4,4.2-7.4,4-5.6-.4-6-4.4-6-7.4,1.4-.2,3.8,1,6,4l.8-8.8c-2.2,2.4-4.4,2.8-6.6,2.8.8-2.4,4.2-6.2,4.2-6.2h-11s3.6,4,4.2,6.2c-2.2,0-4.4-.6-6.6-2.8l.8,8.8c2.2-3,4.6-4.2,6-4-.2,3.2-.4,7-6,7.4-3.8.4-7-1.6-7.4-4-.4-2.6,2-4.4,3.8-1.6,1.4-4.8-2.6-6.2-5.2-3.4,2-4.6,2-8-2.4-11.2-3.2,4.2-2.6,7.6,1.2,11.4-2.6-1.4-6.4,0-4.2,4.8,1.2-3,3.8-2.2,4.4.2.4,1.8-.8,3.8-3,4.4-2,.4-5-1-7.4-6,1.4,0,2.6.8,4,1.8l-3-8.4c-.6,2.4-1.4,3.8-2.4,4.8-.6-1.6-.4-3,0-5.6l-5.2,1.8c3,3.8,5.6,9,7.8,18.2,7.6-1,16.4-1.8,25.4-1.8')
|
|
79
|
-
end
|
|
80
|
-
|
|
81
65
|
# rubocop:disable Metrics/AbcSize
|
|
82
66
|
|
|
83
67
|
# Generates the Tudor Crown HTML
|
|
@@ -100,24 +84,11 @@ module CCS
|
|
|
100
84
|
|
|
101
85
|
# rubocop:enable Metrics/AbcSize
|
|
102
86
|
|
|
103
|
-
# Generates the HTML for logotype with standard dot
|
|
104
|
-
#
|
|
105
|
-
# @return [ActiveSupport::SafeBuffer]
|
|
106
|
-
|
|
107
|
-
def logotype
|
|
108
|
-
path_kwargs = {
|
|
109
|
-
d: 'M88.6,33.2c0,1.8.2,3.4.6,5s1.2,3,2,4.4c1,1.2,2,2.2,3.4,3s3,1.2,5,1.2,3.4-.2,4.6-.8,2.2-1.4,3-2.2,1.2-1.8,1.6-3c.2-1,.4-2,.4-3v-.4h-10.6v-6.4h18.8v23h-7.4v-5c-.6.8-1.2,1.6-2,2.2-.8.6-1.6,1.2-2.6,1.8-1,.4-2,.8-3.2,1.2s-2.4.4-3.6.4c-3,0-5.8-.6-8-1.6-2.4-1.2-4.4-2.6-6-4.6s-2.8-4.2-3.6-6.8c-.6-2.8-1-5.6-1-8.6s.4-5.8,1.4-8.4,2.2-4.8,4-6.8,3.8-3.4,6.2-4.6c2.4-1.2,5.2-1.6,8.2-1.6s3.8.2,5.6.6c1.8.4,3.4,1.2,4.8,2s2.8,1.8,3.8,3c1.2,1.2,2,2.6,2.8,4l-7.4,4.2c-.4-.8-1-1.8-1.6-2.4-.6-.8-1.2-1.4-2-2s-1.6-1-2.6-1.4-2.2-.4-3.4-.4c-2,0-3.6.4-5,1.2-1.4.8-2.6,1.8-3.4,3-1,1.2-1.6,2.8-2,4.4-.6,1.6-.8,3.8-.8,5.4ZM161.4,24.6c-.8-2.6-2.2-4.8-4-6.8s-3.8-3.4-6.2-4.6c-2.4-1.2-5.2-1.6-8.4-1.6s-5.8.6-8.4,1.6c-2.2,1.2-4.4,2.8-6,4.6-1.8,2-3,4.2-4,6.8-.8,2.6-1.4,5.4-1.4,8.4s.4,5.8,1.4,8.4c.8,2.6,2.2,4.8,4,6.8s3.8,3.4,6.2,4.6c2.4,1.2,5.2,1.6,8.4,1.6s5.8-.6,8.4-1.6c2.4-1.2,4.6-2.6,6.2-4.6,1.8-2,3-4.2,4-6.8.8-2.6,1.4-5.4,1.4-8.4-.2-3-.6-5.8-1.6-8.4h0ZM154,33.2c0,2-.2,3.8-.8,5.4-.4,1.6-1.2,3.2-2.2,4.4s-2.2,2.2-3.4,2.8c-1.4.6-3,1-4.8,1s-3.4-.4-4.8-1-2.6-1.6-3.4-2.8c-1-1.2-1.6-2.6-2.2-4.4-.4-1.6-.8-3.4-.8-5.4v-.2c0-2,.2-3.8.8-5.4.4-1.6,1.2-3.2,2.2-4.4,1-1.2,2.2-2.2,3.4-2.8,1.4-.6,3-1,4.8-1s3.4.4,4.8,1,2.6,1.6,3.4,2.8c1,1.2,1.6,2.6,2.2,4.4.4,1.6.8,3.4.8,5.4v.2ZM177.8,54l-11.8-42h9.4l8,31.4h.2l8-31.4h9.4l-11.8,42h-11.4,0ZM235.4,46.7c1.2,0,2.4-.2,3.4-.6,1-.4,2-.8,2.8-1.6s1.4-1.6,1.8-2.8c.4-1.2.6-2.4.6-4V11.8h8.2v27.2c0,2.4-.4,4.4-1.2,6.2s-2,3.4-3.6,4.8c-1.4,1.4-3.2,2.4-5.4,3-2,.8-4.4,1-6.8,1s-4.8-.4-6.8-1c-2-.8-3.8-1.8-5.4-3-1.6-1.4-2.6-3-3.6-4.8-.8-1.8-1.2-4-1.2-6.2V11.7h8.4v26c0,1.6.2,2.8.6,4,.4,1.2,1,2,1.8,2.8s1.6,1.2,2.8,1.6c1.2.4,2.2.6,3.6.6h0ZM261.4,11.9h8.4v18.2l14.8-18.2h10.4l-14.4,16.8,15.4,25.2h-9.8l-11-18.8-5.4,6v12.8h-8.4V11.9h0ZM206.2,44.2c-3,0-5.4,2.4-5.4,5.4s2.4,5.4,5.4,5.4,5.4-2.4,5.4-5.4-2.4-5.4-5.4-5.4Z'
|
|
110
|
-
}
|
|
111
|
-
path_kwargs[:transform] = 'translate(8 0)' unless use_tudor_crown
|
|
112
|
-
|
|
113
|
-
tag.path(**path_kwargs)
|
|
114
|
-
end
|
|
115
|
-
|
|
116
87
|
# Generates the HTML for logotype with raised and coloured dot
|
|
117
88
|
#
|
|
118
89
|
# @return [ActiveSupport::SafeBuffer]
|
|
119
90
|
|
|
120
|
-
def
|
|
91
|
+
def logotype
|
|
121
92
|
capture do
|
|
122
93
|
concat(tag.circle(class: 'govuk-logo-dot', cx: '226', cy: '36', r: '7.3'))
|
|
123
94
|
concat(tag.path(d: 'M93.94 41.25c.4 1.81 1.2 3.21 2.21 4.62 1 1.4 2.21 2.41 3.61 3.21s3.21 1.2 5.22 1.2 3.61-.4 4.82-1c1.4-.6 2.41-1.4 3.21-2.41.8-1 1.4-2.01 1.61-3.01s.4-2.01.4-3.01v.14h-10.86v-7.02h20.07v24.08h-8.03v-5.56c-.6.8-1.38 1.61-2.19 2.41-.8.8-1.81 1.2-2.81 1.81-1 .4-2.21.8-3.41 1.2s-2.41.4-3.81.4a18.56 18.56 0 0 1-14.65-6.63c-1.6-2.01-3.01-4.41-3.81-7.02s-1.4-5.62-1.4-8.83.4-6.02 1.4-8.83a20.45 20.45 0 0 1 19.46-13.65c3.21 0 4.01.2 5.82.8 1.81.4 3.61 1.2 5.02 2.01 1.61.8 2.81 2.01 4.01 3.21s2.21 2.61 2.81 4.21l-7.63 4.41c-.4-1-1-1.81-1.61-2.61-.6-.8-1.4-1.4-2.21-2.01-.8-.6-1.81-1-2.81-1.4-1-.4-2.21-.4-3.61-.4-2.01 0-3.81.4-5.22 1.2-1.4.8-2.61 1.81-3.61 3.21s-1.61 2.81-2.21 4.62c-.4 1.81-.6 3.71-.6 5.42s.8 5.22.8 5.22Zm57.8-27.9c3.21 0 6.22.6 8.63 1.81 2.41 1.2 4.82 2.81 6.62 4.82S170.2 24.39 171 27s1.4 5.62 1.4 8.83-.4 6.02-1.4 8.83-2.41 5.02-4.01 7.02-4.01 3.61-6.62 4.82-5.42 1.81-8.63 1.81-6.22-.6-8.63-1.81-4.82-2.81-6.42-4.82-3.21-4.41-4.01-7.02-1.4-5.62-1.4-8.83.4-6.02 1.4-8.83 2.41-5.02 4.01-7.02 4.01-3.61 6.42-4.82 5.42-1.81 8.63-1.81Zm0 36.73c1.81 0 3.61-.4 5.02-1s2.61-1.81 3.61-3.01 1.81-2.81 2.21-4.41c.4-1.81.8-3.61.8-5.62 0-2.21-.2-4.21-.8-6.02s-1.2-3.21-2.21-4.62c-1-1.2-2.21-2.21-3.61-3.01s-3.21-1-5.02-1-3.61.4-5.02 1c-1.4.8-2.61 1.81-3.61 3.01s-1.81 2.81-2.21 4.62c-.4 1.81-.8 3.61-.8 5.62 0 2.41.2 4.21.8 6.02.4 1.81 1.2 3.21 2.21 4.41s2.21 2.21 3.61 3.01c1.4.8 3.21 1 5.02 1Zm36.32 7.96-12.24-44.15h9.83l8.43 32.77h.4l8.23-32.77h9.83L200.3 58.04h-12.24Zm74.14-7.96c2.18 0 3.51-.6 3.51-.6 1.2-.6 2.01-1 2.81-1.81s1.4-1.81 1.81-2.81a13 13 0 0 0 .8-4.01V13.9h8.63v28.15c0 2.41-.4 4.62-1.4 6.62-.8 2.01-2.21 3.61-3.61 5.02s-3.41 2.41-5.62 3.21-4.62 1.2-7.02 1.2-5.02-.4-7.02-1.2c-2.21-.8-4.01-1.81-5.62-3.21s-2.81-3.01-3.61-5.02-1.4-4.21-1.4-6.62V13.9h8.63v26.95c0 1.61.2 3.01.8 4.01.4 1.2 1.2 2.21 2.01 2.81.8.8 1.81 1.4 2.81 1.81 0 0 1.34.6 3.51.6Zm34.22-36.18v18.92l15.65-18.92h10.82l-15.03 17.32 16.03 26.83h-10.21l-11.44-20.21-5.62 6.22v13.99h-8.83V13.9'))
|
data/lib/ccs/frontend_helpers.rb
CHANGED
|
@@ -10,7 +10,7 @@ module CCS
|
|
|
10
10
|
#
|
|
11
11
|
# The CCS Frontend Helperss module contains view helpers based on:
|
|
12
12
|
# - {https://design-system.service.gov.uk/components GDS components}
|
|
13
|
-
# - {https://github.com/
|
|
13
|
+
# - {https://github.com/Crown-Commercial-Service/ccs-frontend-project CCS components}
|
|
14
14
|
# that can be used in Ruby on Rails projects within CCS.
|
|
15
15
|
|
|
16
16
|
module FrontendHelpers
|
data/package.json
CHANGED
metadata
CHANGED
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: ccs-frontend_helpers
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version:
|
|
4
|
+
version: 4.1.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Crown Commercial Service
|
|
8
|
+
- Government Commerical Agency
|
|
8
9
|
bindir: exe
|
|
9
10
|
cert_chain: []
|
|
10
11
|
date: 1980-01-02 00:00:00.000000000 Z
|
|
@@ -23,7 +24,7 @@ dependencies:
|
|
|
23
24
|
- - ">="
|
|
24
25
|
- !ruby/object:Gem::Version
|
|
25
26
|
version: '7.2'
|
|
26
|
-
description: Gem containing view helpers for CCS Ruby on Rails projects
|
|
27
|
+
description: Gem containing view helpers for CCS (formally CCS) Ruby on Rails projects
|
|
27
28
|
executables: []
|
|
28
29
|
extensions: []
|
|
29
30
|
extra_rdoc_files: []
|
|
@@ -99,8 +100,6 @@ files:
|
|
|
99
100
|
- lib/ccs/components/govuk/footer/navigation.rb
|
|
100
101
|
- lib/ccs/components/govuk/form_group.rb
|
|
101
102
|
- lib/ccs/components/govuk/header.rb
|
|
102
|
-
- lib/ccs/components/govuk/header/link.rb
|
|
103
|
-
- lib/ccs/components/govuk/header/navigation.rb
|
|
104
103
|
- lib/ccs/components/govuk/hint.rb
|
|
105
104
|
- lib/ccs/components/govuk/inset_text.rb
|
|
106
105
|
- lib/ccs/components/govuk/label.rb
|
|
@@ -223,5 +222,5 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
223
222
|
requirements: []
|
|
224
223
|
rubygems_version: 3.6.9
|
|
225
224
|
specification_version: 4
|
|
226
|
-
summary: Gem containing view helpers for CCS Ruby on Rails projects
|
|
225
|
+
summary: Gem containing view helpers for GCA (formally CCS) Ruby on Rails projects
|
|
227
226
|
test_files: []
|
|
@@ -1,56 +0,0 @@
|
|
|
1
|
-
require_relative '../../base'
|
|
2
|
-
|
|
3
|
-
module CCS
|
|
4
|
-
module Components
|
|
5
|
-
module GovUK
|
|
6
|
-
class Header < Base
|
|
7
|
-
# = GOV.UK Header link
|
|
8
|
-
#
|
|
9
|
-
# The individual header link item
|
|
10
|
-
#
|
|
11
|
-
# @!attribute [r] text
|
|
12
|
-
# @return [String] Text for the header link
|
|
13
|
-
# @!attribute [r] href
|
|
14
|
-
# @return [String] The href for the header link
|
|
15
|
-
|
|
16
|
-
class Link < Base
|
|
17
|
-
private
|
|
18
|
-
|
|
19
|
-
attr_reader :text, :href
|
|
20
|
-
|
|
21
|
-
public
|
|
22
|
-
|
|
23
|
-
# @param text [String] the text for the header link
|
|
24
|
-
# @param href [String] the href for the header link
|
|
25
|
-
# @param options [Hash] options that will be used in customising the HTML
|
|
26
|
-
#
|
|
27
|
-
# @option options [Boolean] :active flag to mark the navigation item as active or not
|
|
28
|
-
# @option options [Hash] :attributes any additional attributes that will added as part of the HTML
|
|
29
|
-
|
|
30
|
-
def initialize(text:, href: nil, **)
|
|
31
|
-
super(**)
|
|
32
|
-
|
|
33
|
-
@text = text
|
|
34
|
-
@href = href
|
|
35
|
-
end
|
|
36
|
-
|
|
37
|
-
# Generates the HTML for the GOV.UK Header link
|
|
38
|
-
#
|
|
39
|
-
# @return [ActiveSupport::SafeBuffer]
|
|
40
|
-
|
|
41
|
-
def render
|
|
42
|
-
tag.li(class: "govuk-header__navigation-item #{'govuk-header__navigation-item--active' if options[:active]}".rstrip) do
|
|
43
|
-
if href
|
|
44
|
-
options[:attributes][:class] = 'govuk-header__link'
|
|
45
|
-
|
|
46
|
-
link_to(text, href, **options[:attributes])
|
|
47
|
-
else
|
|
48
|
-
text
|
|
49
|
-
end
|
|
50
|
-
end
|
|
51
|
-
end
|
|
52
|
-
end
|
|
53
|
-
end
|
|
54
|
-
end
|
|
55
|
-
end
|
|
56
|
-
end
|
|
@@ -1,73 +0,0 @@
|
|
|
1
|
-
require_relative 'link'
|
|
2
|
-
|
|
3
|
-
module CCS
|
|
4
|
-
module Components
|
|
5
|
-
module GovUK
|
|
6
|
-
class Header < Base
|
|
7
|
-
# = GOV.UK Header navigation
|
|
8
|
-
#
|
|
9
|
-
# The header navigation section
|
|
10
|
-
#
|
|
11
|
-
# @!attribute [r] navigation_links
|
|
12
|
-
# @return [Array<Link>] An array of the initialised navigation links
|
|
13
|
-
# @!attribute [r] navigation_label
|
|
14
|
-
# @return [String] The aria label for the navigation
|
|
15
|
-
# @!attribute [r] navigation_classes
|
|
16
|
-
# @return [String] The classes for the navigation
|
|
17
|
-
# @!attribute [r] menu_button
|
|
18
|
-
# @return [Hash] The options for the menu button
|
|
19
|
-
|
|
20
|
-
class Navigation
|
|
21
|
-
include ActionView::Context
|
|
22
|
-
include ActionView::Helpers
|
|
23
|
-
|
|
24
|
-
private
|
|
25
|
-
|
|
26
|
-
attr_reader :navigation_links, :navigation_label, :navigation_classes, :menu_button
|
|
27
|
-
|
|
28
|
-
public
|
|
29
|
-
|
|
30
|
-
# @param navigation [Hash] options for the navigation
|
|
31
|
-
# @param context [ActionView::Base] the view context
|
|
32
|
-
# @param menu_button [Hash] options for the menu button
|
|
33
|
-
#
|
|
34
|
-
# @option navigation [Array] :items an array of links for the navigation section.
|
|
35
|
-
# See {Components::GovUK::Header::Link#initialize Link#initialize} for details of the items in the array.
|
|
36
|
-
# @option navigation [String] :classes additional CSS classes for the navigation HTML
|
|
37
|
-
# @option navigation [String] :label text for the aria-label attribute of the navigation. Defaults to the menu button text
|
|
38
|
-
#
|
|
39
|
-
# @option menu_button [String] :text text for the button that opens the mobile navigation menu.
|
|
40
|
-
# By default, this is set to +Menu+.
|
|
41
|
-
# @option menu_button [String] :label text for the aria-label attribute of the button that opens the mobile navigation.
|
|
42
|
-
# Defaults to +Show or hide menu+.
|
|
43
|
-
|
|
44
|
-
def initialize(navigation:, context:, menu_button: nil)
|
|
45
|
-
menu_button ||= {}
|
|
46
|
-
menu_button[:text] ||= 'Menu'
|
|
47
|
-
|
|
48
|
-
menu_button[:aria] = { controls: 'navigation' }
|
|
49
|
-
menu_button[:aria][:label] = menu_button[:label] if menu_button[:label]
|
|
50
|
-
|
|
51
|
-
@menu_button = menu_button
|
|
52
|
-
@navigation_links = navigation[:items].map { |navigation_link| Link.new(context: context, **navigation_link) }
|
|
53
|
-
@navigation_label = navigation[:label] || menu_button[:text]
|
|
54
|
-
@navigation_classes = "govuk-header__navigation #{navigation[:classes]}".rstrip
|
|
55
|
-
end
|
|
56
|
-
|
|
57
|
-
# Generates the HTML for the GOV.UK Navigation
|
|
58
|
-
#
|
|
59
|
-
# @return [ActiveSupport::SafeBuffer]
|
|
60
|
-
|
|
61
|
-
def render
|
|
62
|
-
tag.nav(aria: { label: navigation_label }, class: navigation_classes) do
|
|
63
|
-
concat(button_tag(menu_button[:text], type: :button, class: 'govuk-header__menu-button govuk-js-header-toggle', aria: menu_button[:aria], hidden: true))
|
|
64
|
-
concat(tag.ul(id: 'navigation', class: 'govuk-header__navigation-list') do
|
|
65
|
-
navigation_links.each { |navigation_link| concat(navigation_link.render) }
|
|
66
|
-
end)
|
|
67
|
-
end
|
|
68
|
-
end
|
|
69
|
-
end
|
|
70
|
-
end
|
|
71
|
-
end
|
|
72
|
-
end
|
|
73
|
-
end
|