lay_me_out 1.2.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (52) hide show
  1. checksums.yaml +7 -0
  2. data/README.md +172 -0
  3. data/Rakefile +89 -0
  4. data/app/assets/images/lay_me_out/crumb-arrows.png +0 -0
  5. data/app/assets/images/lay_me_out/favicon.ico +0 -0
  6. data/app/assets/images/lay_me_out/header-background.png +0 -0
  7. data/app/assets/images/lay_me_out/main-background.png +0 -0
  8. data/app/assets/images/lay_me_out/missing_profile.png +0 -0
  9. data/app/assets/images/lay_me_out/payroll-hero-logo-light.png +0 -0
  10. data/app/assets/images/lay_me_out/ph-logo.png +0 -0
  11. data/app/assets/javascripts/lay_me_out.js +18 -0
  12. data/app/assets/javascripts/lay_me_out/application-config.js +3 -0
  13. data/app/assets/javascripts/lay_me_out/navigation.js +29 -0
  14. data/app/assets/javascripts/lay_me_out/user_profile.js +25 -0
  15. data/app/assets/javascripts/lay_me_out/utils/flash-message.js +68 -0
  16. data/app/assets/javascripts/lay_me_out/utils/namespace.js +17 -0
  17. data/app/assets/stylesheets/lay_me_out.css +15 -0
  18. data/app/assets/stylesheets/lay_me_out/buttons.css.scss +55 -0
  19. data/app/assets/stylesheets/lay_me_out/colors.css.scss +31 -0
  20. data/app/assets/stylesheets/lay_me_out/flash.css.scss +40 -0
  21. data/app/assets/stylesheets/lay_me_out/flash_mobile.css.scss +7 -0
  22. data/app/assets/stylesheets/lay_me_out/forms.css.scss +79 -0
  23. data/app/assets/stylesheets/lay_me_out/headers.css.scss +50 -0
  24. data/app/assets/stylesheets/lay_me_out/layout.css.scss +377 -0
  25. data/app/assets/stylesheets/lay_me_out/mixins.css.scss +5 -0
  26. data/app/assets/stylesheets/lay_me_out/reset.css.scss +37 -0
  27. data/app/assets/stylesheets/lay_me_out/side_menu.css.scss +32 -0
  28. data/app/assets/stylesheets/lay_me_out/simple.css.scss +96 -0
  29. data/app/assets/stylesheets/lay_me_out/simple_mobile.css.scss +112 -0
  30. data/app/assets/stylesheets/lay_me_out/tables.css.scss +39 -0
  31. data/app/assets/stylesheets/lay_me_out/text.css.scss +3 -0
  32. data/app/controllers/lay_me_out/styleguide_controller.rb +11 -0
  33. data/app/helpers/lay_me_out/application_helper.rb +49 -0
  34. data/app/models/lay_me_out/user_details.rb +20 -0
  35. data/app/views/lay_me_out/common/_flash.html.haml +14 -0
  36. data/app/views/lay_me_out/common/_flash.mustache.haml +3 -0
  37. data/app/views/lay_me_out/common/_navigation.html.haml +12 -0
  38. data/app/views/lay_me_out/common/_segment_io.html.haml +3 -0
  39. data/app/views/lay_me_out/common/_user_profile.html.haml +12 -0
  40. data/app/views/lay_me_out/styleguide/index.html.haml +1786 -0
  41. data/app/views/layouts/lay_me_out/application.html.haml +47 -0
  42. data/app/views/layouts/lay_me_out/simple.html.haml +42 -0
  43. data/config/routes.rb +3 -0
  44. data/lib/lay_me_out.rb +18 -0
  45. data/lib/lay_me_out/breadcrumb_builder.rb +46 -0
  46. data/lib/lay_me_out/controllers/layout.rb +13 -0
  47. data/lib/lay_me_out/controllers/navigation.rb +36 -0
  48. data/lib/lay_me_out/engine.rb +12 -0
  49. data/lib/lay_me_out/segment_io.rb +20 -0
  50. data/lib/lay_me_out/version.rb +3 -0
  51. data/lib/tasks/lay_me_out_tasks.rake +4 -0
  52. metadata +276 -0
@@ -0,0 +1,47 @@
1
+ !!!
2
+ %html
3
+ %head
4
+ %title PayrollHero
5
+ = stylesheet_link_tag "application", media: "all"
6
+ = javascript_include_tag "https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"
7
+ = javascript_include_tag "https://cdnjs.cloudflare.com/ajax/libs/underscore.js/1.4.3/underscore-min.js"
8
+ = javascript_include_tag "https://cdnjs.cloudflare.com/ajax/libs/ICanHaz.js/0.10/ICanHaz.min.js"
9
+ = javascript_include_tag "application"
10
+ = yield :header_content
11
+ = csrf_meta_tags
12
+ = favicon_link_tag 'lay_me_out/favicon.ico'
13
+ %body{ :class => "main #{controller_name}" }
14
+ #flash
15
+ %header
16
+ .wrapper
17
+ .title-bar
18
+ = link_to image_tag('lay_me_out/ph-logo.png'), main_app.root_path, :id => "logo"
19
+ .tagline
20
+ %p
21
+ Optimizing Work Productivity with
22
+ %strong Happiness
23
+ = render_user_profile
24
+ %nav.main
25
+ = render_navigation
26
+ %section{:id => "contents-container" }
27
+ .wrapper
28
+ #side-menu
29
+ = yield :side_menu
30
+ #content{ :class => content_class }
31
+ #crumbs
32
+ = render_breadcrumbs(:builder => LayMeOut::BreadcrumbBuilder)
33
+ .main
34
+ = yield
35
+ %footer
36
+ .wrapper
37
+ %ul{ :id => "footer-logo" }
38
+ %li= "© Copyright 2008-#{Date.current.year} PayrollHero.com PTE. LTD. All Rights Reserved."
39
+ %li= "Your IP: #{request.ip}"
40
+ %ul{ :id => "legalese" }
41
+ %li{ :class => "privacy-policy" }
42
+ = link_to "Privacy Policy", "https://payrollhero.payrollhero.com/privacy_policy.html"
43
+ %li{ :class => "terms-of-service" }
44
+ = link_to "Terms of Service", "https://payrollhero.payrollhero.com/terms_of_service.html"
45
+ = render :partial => "lay_me_out/common/flash", :locals => { :flash => flash }
46
+ = render :partial => "lay_me_out/common/segment_io" if SegmentIO.show_analytics?
47
+ = yield :footer_content
@@ -0,0 +1,42 @@
1
+ !!!
2
+ %html
3
+ %head
4
+ %title PayrollHero.com PTE. LTD.
5
+ = stylesheet_link_tag "application", media: "all"
6
+ = javascript_include_tag "https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"
7
+ = javascript_include_tag "https://cdnjs.cloudflare.com/ajax/libs/underscore.js/1.4.3/underscore-min.js"
8
+ = javascript_include_tag "https://cdnjs.cloudflare.com/ajax/libs/ICanHaz.js/0.10/ICanHaz.min.js"
9
+ = javascript_include_tag "application"
10
+ = yield :header_content
11
+ = csrf_meta_tags
12
+ = favicon_link_tag 'lay_me_out/favicon.ico'
13
+
14
+ -# iOS
15
+ %meta{ name: "viewport", content: "width = 450, user-scalable = no" }
16
+
17
+ %body{ class: "simple #{controller_name}" }
18
+ #flash
19
+ %header
20
+ .wrapper
21
+ = link_to image_tag("lay_me_out/ph-logo.png"), main_app.root_path, id: "logo"
22
+ .tagline
23
+ %p
24
+ Optimizing Work Productivity with
25
+ %strong Happiness
26
+ %section{ id: "contents-container" }
27
+ .wrapper
28
+ #content
29
+ = yield
30
+ %footer
31
+ .wrapper
32
+ %ul
33
+ %li= "© Copyright 2008-#{Date.current.year} PayrollHero.com PTE. LTD. All Rights Reserved."
34
+ %li= "Your IP: #{request.ip}"
35
+ %ul{ id: "legalese" }
36
+ %li{ class: "privacy-policy" }
37
+ = link_to "Privacy Policy", "https://payrollhero.payrollhero.com/privacy_policy.html"
38
+ %li{ class: "terms-of-service" }
39
+ = link_to "Terms of Service", "https://payrollhero.payrollhero.com/terms_of_service.html"
40
+ = render partial: "lay_me_out/common/flash", locals: { flash: flash }
41
+ = render partial: "lay_me_out/common/segment_io" if SegmentIO.show_analytics?
42
+ = yield :footer_content
data/config/routes.rb ADDED
@@ -0,0 +1,3 @@
1
+ LayMeOut::Engine.routes.draw do
2
+ root :to => "styleguide#index"
3
+ end
data/lib/lay_me_out.rb ADDED
@@ -0,0 +1,18 @@
1
+ require "lay_me_out/engine"
2
+ require "lay_me_out/controllers/layout"
3
+ require "lay_me_out/controllers/navigation"
4
+ require "lay_me_out/breadcrumb_builder"
5
+ require 'lay_me_out/segment_io'
6
+
7
+ module LayMeOut
8
+ module Layout
9
+ def self.included(base)
10
+ base.class_eval do
11
+ self.layout "lay_me_out/application"
12
+ self.helper LayMeOut::ApplicationHelper
13
+ include LayMeOut::Controllers::Layout
14
+ include LayMeOut::Controllers::Navigation
15
+ end
16
+ end
17
+ end
18
+ end
@@ -0,0 +1,46 @@
1
+ require 'breadcrumbs_on_rails'
2
+
3
+ module LayMeOut
4
+ class BreadcrumbBuilder < BreadcrumbsOnRails::Breadcrumbs::Builder
5
+ def render
6
+ set_option_defaults
7
+ @elements.collect{ |element| render_element(element) }.join
8
+ end
9
+
10
+ private
11
+
12
+ def render_element(element)
13
+ translate_element_options_for(element)
14
+ wrap_content content_for(element)
15
+ end
16
+
17
+ def wrap_content(content)
18
+ if @options[:tag]
19
+ @context.content_tag(@options[:tag], content)
20
+ else
21
+ content
22
+ end
23
+ end
24
+
25
+ def content_for(element)
26
+ if element.path == nil
27
+ compute_name(element)
28
+ else
29
+ @context.link_to(compute_name(element), compute_path(element), element.options)
30
+ end
31
+ end
32
+
33
+ def set_option_defaults
34
+ @options.reverse_merge!(:tag => :p)
35
+
36
+ # This line is here due to a bug in breadcrumbs_on_rails
37
+ # A pull request has been submitted with a fix: https://github.com/weppos/breadcrumbs_on_rails/pull/46.
38
+ # Once this pull request is merged, this can be removed.
39
+ @elements.first.options[:home] = true if @elements.first
40
+ end
41
+
42
+ def translate_element_options_for(element)
43
+ element.options[:class] = "icon-home" if element.options.delete(:home)
44
+ end
45
+ end
46
+ end
@@ -0,0 +1,13 @@
1
+ module LayMeOut
2
+ module Controllers
3
+ module Layout
4
+ extend ActiveSupport::Concern
5
+
6
+ module ClassMethods
7
+ def use_simple_layout
8
+ self.layout "lay_me_out/simple"
9
+ end
10
+ end
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,36 @@
1
+ module LayMeOut
2
+ module Controllers
3
+ module Navigation
4
+ extend ActiveSupport::Concern
5
+
6
+ def active_page?(path)
7
+ path = normalized_path(path)
8
+ current_page?(path) || active_pages.include?(path)
9
+ end
10
+
11
+ private
12
+
13
+ def active_pages
14
+ @active_pages ||= []
15
+ end
16
+
17
+ def activate_page(path)
18
+ path = normalized_path(path)
19
+ active_pages << path
20
+ end
21
+
22
+ def current_page?(options)
23
+ url_string = CGI.escapeHTML(url_for(options))
24
+ if url_string =~ /^\w+:\/\//
25
+ url_string == "#{request.protocol}#{request.host_with_port}#{request.fullpath}"
26
+ else
27
+ url_string == request.fullpath
28
+ end
29
+ end
30
+
31
+ def normalized_path(path)
32
+ path.is_a?(Array) ? polymorphic_path(path) : path
33
+ end
34
+ end
35
+ end
36
+ end
@@ -0,0 +1,12 @@
1
+ require 'rails'
2
+ require 'jquery-rails'
3
+ require 'font-awesome-rails'
4
+ require 'action_view'
5
+ require 'haml-rails'
6
+ require 'sass-rails'
7
+
8
+ module LayMeOut
9
+ class Engine < ::Rails::Engine
10
+ isolate_namespace LayMeOut
11
+ end
12
+ end
@@ -0,0 +1,20 @@
1
+ module SegmentIO
2
+ class << self
3
+ def configure
4
+ yield(configuration)
5
+ end
6
+
7
+ def configuration
8
+ @configuration ||= Configuration.new
9
+ end
10
+ alias_method :config, :configuration
11
+
12
+ def show_analytics?
13
+ Rails.env.production? && configuration.api_key
14
+ end
15
+ end
16
+
17
+ class Configuration
18
+ attr_accessor :api_key
19
+ end
20
+ end
@@ -0,0 +1,3 @@
1
+ module LayMeOut
2
+ VERSION = "1.2.8"
3
+ end
@@ -0,0 +1,4 @@
1
+ # desc "Explaining what the task does"
2
+ # task :lay_me_out do
3
+ # # Task goes here
4
+ # end
metadata ADDED
@@ -0,0 +1,276 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: lay_me_out
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.2.8
5
+ platform: ruby
6
+ authors:
7
+ - Dane Natoli
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2015-11-18 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: rails
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ">="
18
+ - !ruby/object:Gem::Version
19
+ version: '3.2'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ">="
25
+ - !ruby/object:Gem::Version
26
+ version: '3.2'
27
+ - !ruby/object:Gem::Dependency
28
+ name: haml-rails
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ">="
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: sass-rails
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ">="
46
+ - !ruby/object:Gem::Version
47
+ version: '0'
48
+ type: :runtime
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ">="
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: jquery-rails
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - ">="
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ type: :runtime
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - ">="
67
+ - !ruby/object:Gem::Version
68
+ version: '0'
69
+ - !ruby/object:Gem::Dependency
70
+ name: font-awesome-rails
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - ">="
74
+ - !ruby/object:Gem::Version
75
+ version: '0'
76
+ type: :runtime
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - ">="
81
+ - !ruby/object:Gem::Version
82
+ version: '0'
83
+ - !ruby/object:Gem::Dependency
84
+ name: sprockets
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - '='
88
+ - !ruby/object:Gem::Version
89
+ version: 2.11.0
90
+ type: :runtime
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - '='
95
+ - !ruby/object:Gem::Version
96
+ version: 2.11.0
97
+ - !ruby/object:Gem::Dependency
98
+ name: breadcrumbs_on_rails
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - ">="
102
+ - !ruby/object:Gem::Version
103
+ version: '0'
104
+ type: :runtime
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - ">="
109
+ - !ruby/object:Gem::Version
110
+ version: '0'
111
+ - !ruby/object:Gem::Dependency
112
+ name: gemfury
113
+ requirement: !ruby/object:Gem::Requirement
114
+ requirements:
115
+ - - ">="
116
+ - !ruby/object:Gem::Version
117
+ version: '0'
118
+ type: :development
119
+ prerelease: false
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ requirements:
122
+ - - ">="
123
+ - !ruby/object:Gem::Version
124
+ version: '0'
125
+ - !ruby/object:Gem::Dependency
126
+ name: jasmine
127
+ requirement: !ruby/object:Gem::Requirement
128
+ requirements:
129
+ - - "~>"
130
+ - !ruby/object:Gem::Version
131
+ version: '1.0'
132
+ type: :development
133
+ prerelease: false
134
+ version_requirements: !ruby/object:Gem::Requirement
135
+ requirements:
136
+ - - "~>"
137
+ - !ruby/object:Gem::Version
138
+ version: '1.0'
139
+ - !ruby/object:Gem::Dependency
140
+ name: rspec-rails
141
+ requirement: !ruby/object:Gem::Requirement
142
+ requirements:
143
+ - - "~>"
144
+ - !ruby/object:Gem::Version
145
+ version: '2.0'
146
+ type: :development
147
+ prerelease: false
148
+ version_requirements: !ruby/object:Gem::Requirement
149
+ requirements:
150
+ - - "~>"
151
+ - !ruby/object:Gem::Version
152
+ version: '2.0'
153
+ - !ruby/object:Gem::Dependency
154
+ name: jasmine-rails
155
+ requirement: !ruby/object:Gem::Requirement
156
+ requirements:
157
+ - - ">="
158
+ - !ruby/object:Gem::Version
159
+ version: '0'
160
+ type: :development
161
+ prerelease: false
162
+ version_requirements: !ruby/object:Gem::Requirement
163
+ requirements:
164
+ - - ">="
165
+ - !ruby/object:Gem::Version
166
+ version: '0'
167
+ - !ruby/object:Gem::Dependency
168
+ name: rake
169
+ requirement: !ruby/object:Gem::Requirement
170
+ requirements:
171
+ - - ">="
172
+ - !ruby/object:Gem::Version
173
+ version: '0'
174
+ type: :development
175
+ prerelease: false
176
+ version_requirements: !ruby/object:Gem::Requirement
177
+ requirements:
178
+ - - ">="
179
+ - !ruby/object:Gem::Version
180
+ version: '0'
181
+ - !ruby/object:Gem::Dependency
182
+ name: ansi
183
+ requirement: !ruby/object:Gem::Requirement
184
+ requirements:
185
+ - - ">="
186
+ - !ruby/object:Gem::Version
187
+ version: '0'
188
+ type: :development
189
+ prerelease: false
190
+ version_requirements: !ruby/object:Gem::Requirement
191
+ requirements:
192
+ - - ">="
193
+ - !ruby/object:Gem::Version
194
+ version: '0'
195
+ description: Provides the common layout and assets for all PayrollHero apps.
196
+ email:
197
+ - dnatoli@payrollhero.com
198
+ executables: []
199
+ extensions: []
200
+ extra_rdoc_files: []
201
+ files:
202
+ - README.md
203
+ - Rakefile
204
+ - app/assets/images/lay_me_out/crumb-arrows.png
205
+ - app/assets/images/lay_me_out/favicon.ico
206
+ - app/assets/images/lay_me_out/header-background.png
207
+ - app/assets/images/lay_me_out/main-background.png
208
+ - app/assets/images/lay_me_out/missing_profile.png
209
+ - app/assets/images/lay_me_out/payroll-hero-logo-light.png
210
+ - app/assets/images/lay_me_out/ph-logo.png
211
+ - app/assets/javascripts/lay_me_out.js
212
+ - app/assets/javascripts/lay_me_out/application-config.js
213
+ - app/assets/javascripts/lay_me_out/navigation.js
214
+ - app/assets/javascripts/lay_me_out/user_profile.js
215
+ - app/assets/javascripts/lay_me_out/utils/flash-message.js
216
+ - app/assets/javascripts/lay_me_out/utils/namespace.js
217
+ - app/assets/stylesheets/lay_me_out.css
218
+ - app/assets/stylesheets/lay_me_out/buttons.css.scss
219
+ - app/assets/stylesheets/lay_me_out/colors.css.scss
220
+ - app/assets/stylesheets/lay_me_out/flash.css.scss
221
+ - app/assets/stylesheets/lay_me_out/flash_mobile.css.scss
222
+ - app/assets/stylesheets/lay_me_out/forms.css.scss
223
+ - app/assets/stylesheets/lay_me_out/headers.css.scss
224
+ - app/assets/stylesheets/lay_me_out/layout.css.scss
225
+ - app/assets/stylesheets/lay_me_out/mixins.css.scss
226
+ - app/assets/stylesheets/lay_me_out/reset.css.scss
227
+ - app/assets/stylesheets/lay_me_out/side_menu.css.scss
228
+ - app/assets/stylesheets/lay_me_out/simple.css.scss
229
+ - app/assets/stylesheets/lay_me_out/simple_mobile.css.scss
230
+ - app/assets/stylesheets/lay_me_out/tables.css.scss
231
+ - app/assets/stylesheets/lay_me_out/text.css.scss
232
+ - app/controllers/lay_me_out/styleguide_controller.rb
233
+ - app/helpers/lay_me_out/application_helper.rb
234
+ - app/models/lay_me_out/user_details.rb
235
+ - app/views/lay_me_out/common/_flash.html.haml
236
+ - app/views/lay_me_out/common/_flash.mustache.haml
237
+ - app/views/lay_me_out/common/_navigation.html.haml
238
+ - app/views/lay_me_out/common/_segment_io.html.haml
239
+ - app/views/lay_me_out/common/_user_profile.html.haml
240
+ - app/views/lay_me_out/styleguide/index.html.haml
241
+ - app/views/layouts/lay_me_out/application.html.haml
242
+ - app/views/layouts/lay_me_out/simple.html.haml
243
+ - config/routes.rb
244
+ - lib/lay_me_out.rb
245
+ - lib/lay_me_out/breadcrumb_builder.rb
246
+ - lib/lay_me_out/controllers/layout.rb
247
+ - lib/lay_me_out/controllers/navigation.rb
248
+ - lib/lay_me_out/engine.rb
249
+ - lib/lay_me_out/segment_io.rb
250
+ - lib/lay_me_out/version.rb
251
+ - lib/tasks/lay_me_out_tasks.rake
252
+ homepage: https://github.com/payrollhero/lay-me-out.git
253
+ licenses:
254
+ - PayrollHero Internal
255
+ metadata: {}
256
+ post_install_message:
257
+ rdoc_options: []
258
+ require_paths:
259
+ - lib
260
+ required_ruby_version: !ruby/object:Gem::Requirement
261
+ requirements:
262
+ - - ">="
263
+ - !ruby/object:Gem::Version
264
+ version: 1.9.3
265
+ required_rubygems_version: !ruby/object:Gem::Requirement
266
+ requirements:
267
+ - - ">="
268
+ - !ruby/object:Gem::Version
269
+ version: '0'
270
+ requirements: []
271
+ rubyforge_project:
272
+ rubygems_version: 2.2.2
273
+ signing_key:
274
+ specification_version: 4
275
+ summary: Common Layouts, styling and javascripts
276
+ test_files: []