design_system 0.13.2 → 0.15.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (158) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +36 -3
  3. data/app/assets/stylesheets/design_system/_hljs.scss +131 -0
  4. data/app/assets/stylesheets/design_system/govuk.scss +43 -0
  5. data/app/assets/stylesheets/design_system/nhsuk.scss +55 -0
  6. data/app/components/design_system/base_component.rb +21 -0
  7. data/app/components/design_system/generic/action_link_component.rb +17 -0
  8. data/app/components/design_system/generic/alert_component.rb +25 -0
  9. data/app/components/design_system/generic/breadcrumbs_component.rb +18 -0
  10. data/app/components/design_system/generic/button_component.rb +51 -0
  11. data/app/components/design_system/generic/callout_component.html.erb +8 -0
  12. data/app/components/design_system/generic/callout_component.rb +15 -0
  13. data/app/components/design_system/generic/details_component.html.erb +4 -0
  14. data/app/components/design_system/generic/details_component.rb +13 -0
  15. data/app/components/design_system/generic/grid_component.html.erb +5 -0
  16. data/app/components/design_system/generic/grid_component.rb +31 -0
  17. data/app/components/design_system/generic/heading_component.rb +41 -0
  18. data/app/components/design_system/generic/inset_text_component.html.erb +1 -0
  19. data/app/components/design_system/generic/inset_text_component.rb +24 -0
  20. data/app/components/design_system/generic/link_component.rb +51 -0
  21. data/app/components/design_system/generic/list_component.html.erb +7 -0
  22. data/app/components/design_system/generic/list_component.rb +26 -0
  23. data/app/components/design_system/generic/notification_component.html.erb +15 -0
  24. data/app/components/design_system/generic/notification_component.rb +39 -0
  25. data/app/components/design_system/generic/panel_component.html.erb +4 -0
  26. data/app/components/design_system/generic/panel_component.rb +18 -0
  27. data/app/components/design_system/generic/paragraph_component.rb +46 -0
  28. data/app/components/design_system/generic/start_button_component.html.erb +4 -0
  29. data/app/components/design_system/generic/start_button_component.rb +17 -0
  30. data/app/components/design_system/generic/summary_card_component.html.erb +15 -0
  31. data/app/components/design_system/generic/summary_card_component.rb +40 -0
  32. data/app/components/design_system/generic/summary_list_component.html.erb +21 -0
  33. data/app/components/design_system/generic/summary_list_component.rb +59 -0
  34. data/app/components/design_system/generic/tab_component.html.erb +21 -0
  35. data/app/components/design_system/generic/tab_component.rb +14 -0
  36. data/app/components/design_system/generic/table_component.rb +46 -0
  37. data/app/components/design_system/govuk/action_link_component.html.erb +1 -0
  38. data/app/components/design_system/govuk/action_link_component.rb +8 -0
  39. data/app/components/design_system/govuk/alert_component.rb +6 -0
  40. data/app/components/design_system/govuk/breadcrumbs_component.html.erb +11 -0
  41. data/app/components/design_system/govuk/breadcrumbs_component.rb +7 -0
  42. data/app/components/design_system/govuk/button_component.rb +6 -0
  43. data/app/components/design_system/govuk/callout_component.html.erb +6 -0
  44. data/app/components/design_system/govuk/callout_component.rb +6 -0
  45. data/app/components/design_system/govuk/details_component.rb +6 -0
  46. data/app/components/design_system/govuk/grid_component.rb +6 -0
  47. data/app/components/design_system/govuk/heading_component.rb +6 -0
  48. data/app/components/design_system/govuk/inset_text_component.rb +6 -0
  49. data/app/components/design_system/govuk/link_component.rb +17 -0
  50. data/app/components/design_system/govuk/list_component.rb +6 -0
  51. data/app/components/design_system/govuk/notification_component.rb +6 -0
  52. data/app/components/design_system/govuk/panel_component.rb +10 -0
  53. data/app/components/design_system/govuk/paragraph_component.rb +6 -0
  54. data/app/components/design_system/govuk/start_button_component.rb +6 -0
  55. data/app/components/design_system/govuk/summary_card_component.html.erb +15 -0
  56. data/app/components/design_system/govuk/summary_card_component.rb +13 -0
  57. data/app/components/design_system/govuk/summary_list_component.rb +6 -0
  58. data/app/components/design_system/govuk/tab_component.rb +6 -0
  59. data/app/components/design_system/govuk/table_component.html.erb +30 -0
  60. data/app/components/design_system/govuk/table_component.rb +6 -0
  61. data/app/components/design_system/nhsuk/action_link_component.html.erb +7 -0
  62. data/app/components/design_system/nhsuk/action_link_component.rb +7 -0
  63. data/app/components/design_system/nhsuk/alert_component.rb +6 -0
  64. data/app/components/design_system/nhsuk/breadcrumbs_component.html.erb +16 -0
  65. data/app/components/design_system/nhsuk/breadcrumbs_component.rb +7 -0
  66. data/app/components/design_system/nhsuk/button_component.rb +6 -0
  67. data/app/components/design_system/nhsuk/callout_component.rb +6 -0
  68. data/app/components/design_system/nhsuk/details_component.rb +6 -0
  69. data/app/components/design_system/nhsuk/grid_component.rb +6 -0
  70. data/app/components/design_system/nhsuk/heading_component.rb +6 -0
  71. data/app/components/design_system/nhsuk/inset_text_component.html.erb +4 -0
  72. data/app/components/design_system/nhsuk/inset_text_component.rb +6 -0
  73. data/app/components/design_system/nhsuk/link_component.rb +17 -0
  74. data/app/components/design_system/nhsuk/list_component.rb +6 -0
  75. data/app/components/design_system/nhsuk/notification_component.rb +6 -0
  76. data/app/components/design_system/nhsuk/panel_component.rb +6 -0
  77. data/app/components/design_system/nhsuk/paragraph_component.rb +6 -0
  78. data/app/components/design_system/nhsuk/start_button_component.rb +6 -0
  79. data/app/components/design_system/nhsuk/summary_card_component.rb +6 -0
  80. data/app/components/design_system/nhsuk/summary_list_component.rb +19 -0
  81. data/app/components/design_system/nhsuk/tab_component.rb +6 -0
  82. data/app/components/design_system/nhsuk/table_component.html.erb +43 -0
  83. data/app/components/design_system/nhsuk/table_component.rb +6 -0
  84. data/app/controllers/concerns/design_system/branded.rb +6 -0
  85. data/app/helpers/design_system_helper.rb +65 -27
  86. data/app/javascript/design_system/controllers/clipboard_controller.js +41 -0
  87. data/app/javascript/design_system/controllers/code_highlight_controller.js +9 -0
  88. data/app/javascript/design_system/controllers/hello_world_controller.js +6 -0
  89. data/app/javascript/design_system/index.js +4 -0
  90. data/app/views/layouts/govuk/application.html.erb +20 -7
  91. data/app/views/layouts/nhsuk/application.html.erb +10 -7
  92. data/lib/design_system/brand_derivable.rb +9 -0
  93. data/lib/design_system/engine.rb +1 -0
  94. data/lib/design_system/generic/builders/base.rb +1 -1
  95. data/lib/design_system/generic/builders/code.rb +23 -0
  96. data/lib/design_system/generic/builders/elements/breadcrumbs.rb +4 -24
  97. data/lib/design_system/generic/builders/elements/headings.rb +3 -2
  98. data/lib/design_system/generic/builders/pagination_renderer.rb +5 -4
  99. data/lib/design_system/generic.rb +1 -14
  100. data/lib/design_system/govuk/builders/code.rb +11 -0
  101. data/lib/design_system/govuk/builders/fixed_elements.rb +0 -1
  102. data/lib/design_system/govuk.rb +1 -12
  103. data/lib/design_system/nhsuk/builders/code.rb +11 -0
  104. data/lib/design_system/nhsuk/builders/fixed_elements.rb +0 -1
  105. data/lib/design_system/nhsuk.rb +1 -12
  106. data/lib/design_system/registry.rb +19 -1
  107. data/lib/design_system/version.rb +1 -1
  108. data/public/design_system/static/design_system-0.15.0/design_system.js +53150 -0
  109. metadata +101 -50
  110. data/lib/design_system/generic/builders/action_link.rb +0 -17
  111. data/lib/design_system/generic/builders/button.rb +0 -33
  112. data/lib/design_system/generic/builders/callout.rb +0 -28
  113. data/lib/design_system/generic/builders/concerns/brand_derivable.rb +0 -14
  114. data/lib/design_system/generic/builders/details.rb +0 -30
  115. data/lib/design_system/generic/builders/grid.rb +0 -44
  116. data/lib/design_system/generic/builders/heading.rb +0 -38
  117. data/lib/design_system/generic/builders/inset_text.rb +0 -18
  118. data/lib/design_system/generic/builders/link.rb +0 -44
  119. data/lib/design_system/generic/builders/list.rb +0 -41
  120. data/lib/design_system/generic/builders/notification.rb +0 -68
  121. data/lib/design_system/generic/builders/panel.rb +0 -18
  122. data/lib/design_system/generic/builders/paragraph.rb +0 -28
  123. data/lib/design_system/generic/builders/summary_list.rb +0 -89
  124. data/lib/design_system/generic/builders/tab.rb +0 -14
  125. data/lib/design_system/generic/builders/table.rb +0 -73
  126. data/lib/design_system/govuk/builders/action_link.rb +0 -17
  127. data/lib/design_system/govuk/builders/button.rb +0 -55
  128. data/lib/design_system/govuk/builders/callout.rb +0 -26
  129. data/lib/design_system/govuk/builders/details.rb +0 -10
  130. data/lib/design_system/govuk/builders/elements/breadcrumbs.rb +0 -33
  131. data/lib/design_system/govuk/builders/grid.rb +0 -12
  132. data/lib/design_system/govuk/builders/heading.rb +0 -11
  133. data/lib/design_system/govuk/builders/inset_text.rb +0 -11
  134. data/lib/design_system/govuk/builders/link.rb +0 -21
  135. data/lib/design_system/govuk/builders/list.rb +0 -11
  136. data/lib/design_system/govuk/builders/notification.rb +0 -11
  137. data/lib/design_system/govuk/builders/panel.rb +0 -18
  138. data/lib/design_system/govuk/builders/paragraph.rb +0 -11
  139. data/lib/design_system/govuk/builders/summary_list.rb +0 -32
  140. data/lib/design_system/govuk/builders/tab.rb +0 -54
  141. data/lib/design_system/govuk/builders/table.rb +0 -77
  142. data/lib/design_system/nhsuk/builders/action_link.rb +0 -30
  143. data/lib/design_system/nhsuk/builders/button.rb +0 -11
  144. data/lib/design_system/nhsuk/builders/callout.rb +0 -11
  145. data/lib/design_system/nhsuk/builders/details.rb +0 -10
  146. data/lib/design_system/nhsuk/builders/elements/breadcrumbs.rb +0 -43
  147. data/lib/design_system/nhsuk/builders/grid.rb +0 -12
  148. data/lib/design_system/nhsuk/builders/heading.rb +0 -11
  149. data/lib/design_system/nhsuk/builders/inset_text.rb +0 -23
  150. data/lib/design_system/nhsuk/builders/link.rb +0 -21
  151. data/lib/design_system/nhsuk/builders/list.rb +0 -11
  152. data/lib/design_system/nhsuk/builders/notification.rb +0 -11
  153. data/lib/design_system/nhsuk/builders/panel.rb +0 -11
  154. data/lib/design_system/nhsuk/builders/paragraph.rb +0 -11
  155. data/lib/design_system/nhsuk/builders/summary_list.rb +0 -18
  156. data/lib/design_system/nhsuk/builders/tab.rb +0 -11
  157. data/lib/design_system/nhsuk/builders/table.rb +0 -68
  158. data/public/design_system/static/design_system-0.13.2/design_system.js +0 -1309
@@ -1,43 +0,0 @@
1
- module DesignSystem
2
- module Nhsuk
3
- module Builders
4
- module Elements
5
- # This mixin module is used to provide NHS breadcrumbs.
6
- module Breadcrumbs
7
- private
8
-
9
- def content_for_breadcrumbs
10
- content_for(:breadcrumbs) do
11
- content_tag(:nav, 'aria-label': 'Breadcrumb', class: "#{brand}-breadcrumb") do
12
- content_tag(:ol, class: "#{brand}-breadcrumb__list") do
13
- @breadcrumbs.each_with_object(ActiveSupport::SafeBuffer.new) do |breadcrumb, safe_buffer|
14
- safe_buffer.concat(render_breadcrumb(breadcrumb))
15
- end
16
- end +
17
- content_for_back_link
18
- end
19
- end
20
- end
21
-
22
- def content_for_back_link
23
- link_to(@breadcrumbs.last[:path],
24
- class: "#{brand}-back-link",
25
- 'aria-current': @context.current_page?(@breadcrumbs.last[:path]) ? 'page' : nil) do
26
- content_tag(:span, 'Back to  '.html_safe, class: "#{brand}-u-visually-hidden") +
27
- @breadcrumbs.last[:label]
28
- end
29
- end
30
-
31
- def render_breadcrumb(breadcrumb)
32
- content_tag(:li, class: "#{brand}-breadcrumb__list-item") do
33
- link_to(breadcrumb[:label],
34
- breadcrumb[:path],
35
- class: "#{brand}-breadcrumb__link",
36
- 'aria-current': @context.current_page?(breadcrumb[:path]) ? 'page' : nil)
37
- end
38
- end
39
- end
40
- end
41
- end
42
- end
43
- end
@@ -1,12 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module DesignSystem
4
- module Nhsuk
5
- module Builders
6
- # NHS UK specific grid implementation
7
- # Inherits all functionality from generic builder
8
- class Grid < ::DesignSystem::Generic::Builders::Grid
9
- end
10
- end
11
- end
12
- end
@@ -1,11 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module DesignSystem
4
- module Nhsuk
5
- module Builders
6
- # This class provides Nhsuk methods to display headings in page content.
7
- class Heading < ::DesignSystem::Generic::Builders::Heading
8
- end
9
- end
10
- end
11
- end
@@ -1,23 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module DesignSystem
4
- module Nhsuk
5
- module Builders
6
- # This generates html for rendering inset text for Nhsuk
7
- class InsetText < ::DesignSystem::Generic::Builders::InsetText
8
- def render_inset_text(text = nil, **options, &)
9
- content = block_given? ? capture(&) : text
10
- return if content.blank?
11
-
12
- wrapped_content = block_given? ? content : content_tag(:p, content)
13
-
14
- div_options = css_class_options_merge(options, ["#{brand}-inset-text"])
15
-
16
- content_tag(:div, **div_options) do
17
- content_tag(:span, 'Information: ', class: "#{brand}-u-visually-hidden") + wrapped_content
18
- end
19
- end
20
- end
21
- end
22
- end
23
- end
@@ -1,21 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module DesignSystem
4
- module Nhsuk
5
- module Builders
6
- # This class provides NHSUK Link.
7
- class Link < ::DesignSystem::Generic::Builders::Link
8
- private
9
-
10
- def button_type_class_hash
11
- {
12
- button: "#{brand}-button",
13
- secondary_button: "#{brand}-button #{brand}-button--secondary",
14
- warning_button: "#{brand}-button #{brand}-button--warning",
15
- reverse_button: "#{brand}-button #{brand}-button--reverse"
16
- }
17
- end
18
- end
19
- end
20
- end
21
- end
@@ -1,11 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module DesignSystem
4
- module Nhsuk
5
- module Builders
6
- # Generic list builder for NHSUK.
7
- class List < ::DesignSystem::Generic::Builders::List
8
- end
9
- end
10
- end
11
- end
@@ -1,11 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module DesignSystem
4
- module Nhsuk
5
- module Builders
6
- # This class provides Nhsuk notifications html.
7
- class Notification < ::DesignSystem::Govuk::Builders::Notification
8
- end
9
- end
10
- end
11
- end
@@ -1,11 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module DesignSystem
4
- module Nhsuk
5
- module Builders
6
- # This generates html for rendering panel for Nhsuk
7
- class Panel < ::DesignSystem::Generic::Builders::Panel
8
- end
9
- end
10
- end
11
- end
@@ -1,11 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module DesignSystem
4
- module Nhsuk
5
- module Builders
6
- # This class provides NHSUK methods to display paragraphs in page content.
7
- class Paragraph < ::DesignSystem::Generic::Builders::Paragraph
8
- end
9
- end
10
- end
11
- end
@@ -1,18 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module DesignSystem
4
- module Nhsuk
5
- module Builders
6
- # This class provides NHSUK Summary List.
7
- class SummaryList < ::DesignSystem::Generic::Builders::SummaryList
8
- private
9
-
10
- def render_hidden_text(hidden_text)
11
- return '' if hidden_text.blank?
12
-
13
- content_tag(:span, hidden_text, class: "#{brand}-u-visually-hidden")
14
- end
15
- end
16
- end
17
- end
18
- end
@@ -1,11 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module DesignSystem
4
- module Nhsuk
5
- module Builders
6
- # This class provides Nhsuk Tab.
7
- class Tab < ::DesignSystem::Govuk::Builders::Tab
8
- end
9
- end
10
- end
11
- end
@@ -1,68 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module DesignSystem
4
- module Nhsuk
5
- module Builders
6
- # This class is used to provide Nhsuk Table.
7
- class Table < ::DesignSystem::Govuk::Builders::Table
8
- private
9
-
10
- def table_content
11
- content_tag(:table, nil, class: "#{brand}-table-responsive") do
12
- safe_buffer = ActiveSupport::SafeBuffer.new
13
-
14
- if @table.caption
15
- safe_buffer.concat(content_tag(:caption, @table.caption,
16
- class: "#{brand}-table__caption"))
17
- end
18
- safe_buffer.concat(render_headers)
19
- safe_buffer.concat(render_rows)
20
-
21
- safe_buffer
22
- end
23
- end
24
-
25
- def render_headers
26
- content_tag(:thead, role: 'rowgroup', class: "#{brand}-table__head") do
27
- content_tag(:tr, role: 'row') do
28
- @table.columns.each_with_object(ActiveSupport::SafeBuffer.new) do |column, header_buffer|
29
- header_buffer.concat(render_headers_cell(column))
30
- end
31
- end
32
- end
33
- end
34
-
35
- def render_headers_cell(cell)
36
- classes = "#{brand}-table__header"
37
- classes += " #{brand}-table__header--numeric" if cell_numeric?(cell)
38
-
39
- content_tag(:th, cell_content(cell), cell[:options].merge(scope: 'col', class: classes, role: 'columnheader'))
40
- end
41
-
42
- def render_row(row)
43
- content_tag(:tr, role: 'row', class: "#{brand}-table__row") do
44
- row.each_with_object(ActiveSupport::SafeBuffer.new).with_index do |(cell, cell_buffer), index|
45
- cell_buffer.concat(render_data_cell(cell, index))
46
- end
47
- end
48
- end
49
-
50
- def render_data_cell(cell, index)
51
- classes = "#{brand}-table__cell"
52
- classes += " #{brand}-table__cell--numeric" if cell_numeric?(cell)
53
-
54
- content_tag(:td, cell[:options].merge(class: classes), role: 'cell') do
55
- safe_buffer = ActiveSupport::SafeBuffer.new
56
- safe_buffer.concat(content_tag(:span,
57
- @table.columns[index][:content],
58
- class: "#{brand}-table-responsive__heading",
59
- aria: { hidden: true }))
60
- safe_buffer.concat(cell_content(cell))
61
-
62
- safe_buffer
63
- end
64
- end
65
- end
66
- end
67
- end
68
- end