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
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: design_system
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.13.2
4
+ version: 0.15.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Filis Liu
@@ -54,6 +54,20 @@ dependencies:
54
54
  - - "~>"
55
55
  - !ruby/object:Gem::Version
56
56
  version: '1.3'
57
+ - !ruby/object:Gem::Dependency
58
+ name: view_component
59
+ requirement: !ruby/object:Gem::Requirement
60
+ requirements:
61
+ - - "~>"
62
+ - !ruby/object:Gem::Version
63
+ version: '4.0'
64
+ type: :runtime
65
+ prerelease: false
66
+ version_requirements: !ruby/object:Gem::Requirement
67
+ requirements:
68
+ - - "~>"
69
+ - !ruby/object:Gem::Version
70
+ version: '4.0'
57
71
  - !ruby/object:Gem::Dependency
58
72
  name: will_paginate
59
73
  requirement: !ruby/object:Gem::Requirement
@@ -94,6 +108,7 @@ files:
94
108
  - README.md
95
109
  - Rakefile
96
110
  - app/assets/config/design_system_manifest.js
111
+ - app/assets/stylesheets/design_system/_hljs.scss
97
112
  - app/assets/stylesheets/design_system/govuk-frontend-5.11.1/_base.scss
98
113
  - app/assets/stylesheets/design_system/govuk-frontend-5.11.1/all.scss
99
114
  - app/assets/stylesheets/design_system/govuk-frontend-5.11.1/components/_all.scss
@@ -379,8 +394,88 @@ files:
379
394
  - app/assets/stylesheets/design_system/nhsuk-frontend-10.3.1/index.scss
380
395
  - app/assets/stylesheets/design_system/nhsuk-frontend-10.3.1/nhsuk.scss
381
396
  - app/assets/stylesheets/design_system/nhsuk.scss
397
+ - app/components/design_system/base_component.rb
398
+ - app/components/design_system/generic/action_link_component.rb
399
+ - app/components/design_system/generic/alert_component.rb
400
+ - app/components/design_system/generic/breadcrumbs_component.rb
401
+ - app/components/design_system/generic/button_component.rb
402
+ - app/components/design_system/generic/callout_component.html.erb
403
+ - app/components/design_system/generic/callout_component.rb
404
+ - app/components/design_system/generic/details_component.html.erb
405
+ - app/components/design_system/generic/details_component.rb
406
+ - app/components/design_system/generic/grid_component.html.erb
407
+ - app/components/design_system/generic/grid_component.rb
408
+ - app/components/design_system/generic/heading_component.rb
409
+ - app/components/design_system/generic/inset_text_component.html.erb
410
+ - app/components/design_system/generic/inset_text_component.rb
411
+ - app/components/design_system/generic/link_component.rb
412
+ - app/components/design_system/generic/list_component.html.erb
413
+ - app/components/design_system/generic/list_component.rb
414
+ - app/components/design_system/generic/notification_component.html.erb
415
+ - app/components/design_system/generic/notification_component.rb
416
+ - app/components/design_system/generic/panel_component.html.erb
417
+ - app/components/design_system/generic/panel_component.rb
418
+ - app/components/design_system/generic/paragraph_component.rb
419
+ - app/components/design_system/generic/start_button_component.html.erb
420
+ - app/components/design_system/generic/start_button_component.rb
421
+ - app/components/design_system/generic/summary_card_component.html.erb
422
+ - app/components/design_system/generic/summary_card_component.rb
423
+ - app/components/design_system/generic/summary_list_component.html.erb
424
+ - app/components/design_system/generic/summary_list_component.rb
425
+ - app/components/design_system/generic/tab_component.html.erb
426
+ - app/components/design_system/generic/tab_component.rb
427
+ - app/components/design_system/generic/table_component.rb
428
+ - app/components/design_system/govuk/action_link_component.html.erb
429
+ - app/components/design_system/govuk/action_link_component.rb
430
+ - app/components/design_system/govuk/alert_component.rb
431
+ - app/components/design_system/govuk/breadcrumbs_component.html.erb
432
+ - app/components/design_system/govuk/breadcrumbs_component.rb
433
+ - app/components/design_system/govuk/button_component.rb
434
+ - app/components/design_system/govuk/callout_component.html.erb
435
+ - app/components/design_system/govuk/callout_component.rb
436
+ - app/components/design_system/govuk/details_component.rb
437
+ - app/components/design_system/govuk/grid_component.rb
438
+ - app/components/design_system/govuk/heading_component.rb
439
+ - app/components/design_system/govuk/inset_text_component.rb
440
+ - app/components/design_system/govuk/link_component.rb
441
+ - app/components/design_system/govuk/list_component.rb
442
+ - app/components/design_system/govuk/notification_component.rb
443
+ - app/components/design_system/govuk/panel_component.rb
444
+ - app/components/design_system/govuk/paragraph_component.rb
445
+ - app/components/design_system/govuk/start_button_component.rb
446
+ - app/components/design_system/govuk/summary_card_component.html.erb
447
+ - app/components/design_system/govuk/summary_card_component.rb
448
+ - app/components/design_system/govuk/summary_list_component.rb
449
+ - app/components/design_system/govuk/tab_component.rb
450
+ - app/components/design_system/govuk/table_component.html.erb
451
+ - app/components/design_system/govuk/table_component.rb
452
+ - app/components/design_system/nhsuk/action_link_component.html.erb
453
+ - app/components/design_system/nhsuk/action_link_component.rb
454
+ - app/components/design_system/nhsuk/alert_component.rb
455
+ - app/components/design_system/nhsuk/breadcrumbs_component.html.erb
456
+ - app/components/design_system/nhsuk/breadcrumbs_component.rb
457
+ - app/components/design_system/nhsuk/button_component.rb
458
+ - app/components/design_system/nhsuk/callout_component.rb
459
+ - app/components/design_system/nhsuk/details_component.rb
460
+ - app/components/design_system/nhsuk/grid_component.rb
461
+ - app/components/design_system/nhsuk/heading_component.rb
462
+ - app/components/design_system/nhsuk/inset_text_component.html.erb
463
+ - app/components/design_system/nhsuk/inset_text_component.rb
464
+ - app/components/design_system/nhsuk/link_component.rb
465
+ - app/components/design_system/nhsuk/list_component.rb
466
+ - app/components/design_system/nhsuk/notification_component.rb
467
+ - app/components/design_system/nhsuk/panel_component.rb
468
+ - app/components/design_system/nhsuk/paragraph_component.rb
469
+ - app/components/design_system/nhsuk/start_button_component.rb
470
+ - app/components/design_system/nhsuk/summary_card_component.rb
471
+ - app/components/design_system/nhsuk/summary_list_component.rb
472
+ - app/components/design_system/nhsuk/tab_component.rb
473
+ - app/components/design_system/nhsuk/table_component.html.erb
474
+ - app/components/design_system/nhsuk/table_component.rb
382
475
  - app/controllers/concerns/design_system/branded.rb
383
476
  - app/helpers/design_system_helper.rb
477
+ - app/javascript/design_system/controllers/clipboard_controller.js
478
+ - app/javascript/design_system/controllers/code_highlight_controller.js
384
479
  - app/javascript/design_system/controllers/hello_world_controller.js
385
480
  - app/javascript/design_system/controllers/show_password_controller.js
386
481
  - app/javascript/design_system/index.js
@@ -398,6 +493,7 @@ files:
398
493
  - config/routes.rb
399
494
  - lib/design_system.rb
400
495
  - lib/design_system/all.rb
496
+ - lib/design_system/brand_derivable.rb
401
497
  - lib/design_system/components/grid.rb
402
498
  - lib/design_system/components/list.rb
403
499
  - lib/design_system/components/summary_list.rb
@@ -405,81 +501,36 @@ files:
405
501
  - lib/design_system/components/table.rb
406
502
  - lib/design_system/engine.rb
407
503
  - lib/design_system/generic.rb
408
- - lib/design_system/generic/builders/action_link.rb
409
504
  - lib/design_system/generic/builders/base.rb
410
- - lib/design_system/generic/builders/button.rb
411
- - lib/design_system/generic/builders/callout.rb
412
- - lib/design_system/generic/builders/concerns/brand_derivable.rb
413
- - lib/design_system/generic/builders/details.rb
505
+ - lib/design_system/generic/builders/code.rb
414
506
  - lib/design_system/generic/builders/elements/backlink.rb
415
507
  - lib/design_system/generic/builders/elements/breadcrumbs.rb
416
508
  - lib/design_system/generic/builders/elements/form.rb
417
509
  - lib/design_system/generic/builders/elements/headings.rb
418
510
  - lib/design_system/generic/builders/elements/lead_paragraph.rb
419
511
  - lib/design_system/generic/builders/fixed_elements.rb
420
- - lib/design_system/generic/builders/grid.rb
421
- - lib/design_system/generic/builders/heading.rb
422
- - lib/design_system/generic/builders/inset_text.rb
423
- - lib/design_system/generic/builders/link.rb
424
- - lib/design_system/generic/builders/list.rb
425
- - lib/design_system/generic/builders/notification.rb
426
512
  - lib/design_system/generic/builders/pagination_renderer.rb
427
- - lib/design_system/generic/builders/panel.rb
428
- - lib/design_system/generic/builders/paragraph.rb
429
- - lib/design_system/generic/builders/summary_list.rb
430
- - lib/design_system/generic/builders/tab.rb
431
- - lib/design_system/generic/builders/table.rb
432
513
  - lib/design_system/generic/form_builder.rb
433
514
  - lib/design_system/govuk.rb
434
- - lib/design_system/govuk/builders/action_link.rb
435
- - lib/design_system/govuk/builders/button.rb
436
- - lib/design_system/govuk/builders/callout.rb
437
- - lib/design_system/govuk/builders/details.rb
438
- - lib/design_system/govuk/builders/elements/breadcrumbs.rb
515
+ - lib/design_system/govuk/builders/code.rb
439
516
  - lib/design_system/govuk/builders/elements/headings.rb
440
517
  - lib/design_system/govuk/builders/fixed_elements.rb
441
- - lib/design_system/govuk/builders/grid.rb
442
- - lib/design_system/govuk/builders/heading.rb
443
- - lib/design_system/govuk/builders/inset_text.rb
444
- - lib/design_system/govuk/builders/link.rb
445
- - lib/design_system/govuk/builders/list.rb
446
- - lib/design_system/govuk/builders/notification.rb
447
518
  - lib/design_system/govuk/builders/pagination_renderer.rb
448
- - lib/design_system/govuk/builders/panel.rb
449
- - lib/design_system/govuk/builders/paragraph.rb
450
- - lib/design_system/govuk/builders/summary_list.rb
451
- - lib/design_system/govuk/builders/tab.rb
452
- - lib/design_system/govuk/builders/table.rb
453
519
  - lib/design_system/govuk/form_builder.rb
454
520
  - lib/design_system/govuk/test_helpers/form_builder_assertions_helper.rb
455
521
  - lib/design_system/govuk/test_helpers/form_builder_testable.rb
456
522
  - lib/design_system/helpers/css_helper.rb
457
523
  - lib/design_system/nhsuk.rb
458
- - lib/design_system/nhsuk/builders/action_link.rb
459
- - lib/design_system/nhsuk/builders/button.rb
460
- - lib/design_system/nhsuk/builders/callout.rb
461
- - lib/design_system/nhsuk/builders/details.rb
462
- - lib/design_system/nhsuk/builders/elements/breadcrumbs.rb
524
+ - lib/design_system/nhsuk/builders/code.rb
463
525
  - lib/design_system/nhsuk/builders/fixed_elements.rb
464
- - lib/design_system/nhsuk/builders/grid.rb
465
- - lib/design_system/nhsuk/builders/heading.rb
466
- - lib/design_system/nhsuk/builders/inset_text.rb
467
- - lib/design_system/nhsuk/builders/link.rb
468
- - lib/design_system/nhsuk/builders/list.rb
469
- - lib/design_system/nhsuk/builders/notification.rb
470
526
  - lib/design_system/nhsuk/builders/pagination_renderer.rb
471
- - lib/design_system/nhsuk/builders/panel.rb
472
- - lib/design_system/nhsuk/builders/paragraph.rb
473
- - lib/design_system/nhsuk/builders/summary_list.rb
474
- - lib/design_system/nhsuk/builders/tab.rb
475
- - lib/design_system/nhsuk/builders/table.rb
476
527
  - lib/design_system/nhsuk/form_builder.rb
477
528
  - lib/design_system/registry.rb
478
529
  - lib/design_system/version.rb
479
530
  - lib/tasks/design_system_tasks.rake
480
531
  - lib/tasks/govuk.rake
481
532
  - lib/tasks/nhsuk.rake
482
- - public/design_system/static/design_system-0.13.2/design_system.js
533
+ - public/design_system/static/design_system-0.15.0/design_system.js
483
534
  - public/design_system/static/govuk-frontend-5.11.1/fonts/bold-affa96571d-v2.woff
484
535
  - public/design_system/static/govuk-frontend-5.11.1/fonts/bold-b542beb274-v2.woff2
485
536
  - public/design_system/static/govuk-frontend-5.11.1/fonts/light-94a07e06a1-v2.woff2
@@ -1,17 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module DesignSystem
4
- module Generic
5
- module Builders
6
- # This class provides generic methods to display action links, which should be used to signpost the start of a digital service.
7
- class ActionLink < Base
8
- def render_action_link(name = nil, options = nil, html_options = nil)
9
- options ||= {}
10
- html_options ||= {}
11
-
12
- prep_style(name, options, html_options)
13
- end
14
- end
15
- end
16
- end
17
- end
@@ -1,33 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module DesignSystem
4
- module Generic
5
- module Builders
6
- # This class provides generic methods to display button on html.
7
- class Button < Base
8
- def render_button(content_or_options = nil, options = nil, &)
9
- options = prep_button_options(content_or_options, options)
10
-
11
- if block_given?
12
- button_tag(options = nil, &)
13
- else
14
- button_tag(content_or_options, options)
15
- end
16
- end
17
-
18
- private
19
-
20
- def prep_button_options(content_or_options, options)
21
- if content_or_options.is_a? Hash
22
- options = content_or_options
23
- else
24
- options ||= {}
25
- end
26
-
27
- { 'name' => 'button', 'type' => 'submit',
28
- 'data-module' => "#{brand}-button" }.merge!(options.stringify_keys)
29
- end
30
- end
31
- end
32
- end
33
- end
@@ -1,28 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module DesignSystem
4
- module Generic
5
- module Builders
6
- # This generates html for rendering warning callout to help users identify and understand warning content on the page, even if they do not read the whole page.
7
- class Callout < Base
8
- def render_callout(label, body)
9
- safe_buffer = ActiveSupport::SafeBuffer.new
10
- content_tag(:div, class: "#{brand}-warning-callout") do
11
- safe_buffer.concat(render_label(label))
12
- safe_buffer.concat(content_tag(:p, body))
13
- end
14
- end
15
-
16
- private
17
-
18
- def render_label(label)
19
- content_tag(:h3, class: "#{brand}-warning-callout__label") do
20
- content_tag(:span, role: 'text') do
21
- content_tag(:span, 'Important: ', class: "#{brand}-u-visually-hidden") + label
22
- end
23
- end
24
- end
25
- end
26
- end
27
- end
28
- end
@@ -1,14 +0,0 @@
1
- module DesignSystem
2
- module Generic
3
- module Builders
4
- module Concerns
5
- # Mixin module to make brand method available to builder classes
6
- module BrandDerivable
7
- def brand
8
- self.class.name.split('::')[1].underscore
9
- end
10
- end
11
- end
12
- end
13
- end
14
- end
@@ -1,30 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module DesignSystem
4
- module Generic
5
- module Builders
6
- # This builds a generic details component with brand-specific classes
7
- class Details < Base
8
- def render_details(summary_text)
9
- content = capture { yield if block_given? }
10
-
11
- content_tag(:details, class: "#{brand}-details") do
12
- safe_buffer = ActiveSupport::SafeBuffer.new
13
-
14
- safe_buffer.concat(
15
- content_tag(:summary, class: "#{brand}-details__summary") do
16
- content_tag(:span, summary_text, class: "#{brand}-details__summary-text")
17
- end
18
- )
19
-
20
- safe_buffer.concat(
21
- content_tag(:div, content, class: "#{brand}-details__text")
22
- )
23
-
24
- safe_buffer
25
- end
26
- end
27
- end
28
- end
29
- end
30
- end
@@ -1,44 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module DesignSystem
4
- module Generic
5
- module Builders
6
- # This class provides a generic grid builder.
7
- class Grid < Base
8
- include ActionView::Helpers::OutputSafetyHelper
9
-
10
- def render_grid(options = {})
11
- @grid = ::DesignSystem::Components::Grid.new
12
- yield @grid
13
- @grid.validate_total_width!
14
-
15
- row_options = css_class_options_merge(options, ["#{brand}-grid-row"])
16
- content_tag(:div, **row_options) do
17
- safe_buffer = ActiveSupport::SafeBuffer.new
18
- safe_buffer.concat(render_columns)
19
-
20
- safe_buffer
21
- end
22
- end
23
-
24
- private
25
-
26
- def render_columns
27
- @grid.columns.each_with_object(ActiveSupport::SafeBuffer.new) do |column, buffer|
28
- column_options = column[:options].dup
29
- column_class = grid_class(column[:width])
30
- column_options = css_class_options_merge(column_options, [column_class])
31
-
32
- block = column[:block]
33
- content = capture(&block) if block
34
- buffer.concat(content_tag(:div, content, **column_options))
35
- end
36
- end
37
-
38
- def grid_class(width)
39
- "#{brand}-grid-column-#{::DesignSystem::Components::Grid::WIDTHS[width][:class]}"
40
- end
41
- end
42
- end
43
- end
44
- end
@@ -1,38 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module DesignSystem
4
- module Generic
5
- module Builders
6
- # This class provides generic methods to display headings in page content.
7
- class Heading < Base
8
- SIZE_MAPPING = {
9
- 1 => 'xl',
10
- 2 => 'l',
11
- 3 => 'm',
12
- 4 => 's',
13
- 5 => 'xs',
14
- 6 => 'xs'
15
- }.freeze
16
-
17
- def render_heading(text, level: 2, **options)
18
- content_tag("h#{level}", text, class: classes(level), **options)
19
- end
20
-
21
- private
22
-
23
- def classes(level)
24
- level = level.to_i
25
- validate_level(level)
26
-
27
- "#{brand}-heading-#{SIZE_MAPPING[level]}"
28
- end
29
-
30
- def validate_level(level)
31
- return if level.between?(1, 6)
32
-
33
- raise ArgumentError, "Invalid heading level #{level}. Must be an integer between 1 and 6."
34
- end
35
- end
36
- end
37
- end
38
- end
@@ -1,18 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module DesignSystem
4
- module Generic
5
- module Builders
6
- # This generates html for rendering inset text to help users identify and understand important content on the page.
7
- class InsetText < Base
8
- def render_inset_text(text = nil, **options, &)
9
- content = block_given? ? capture(&) : text
10
- return if content.blank?
11
-
12
- div_options = css_class_options_merge(options, ["#{brand}-inset-text"])
13
- content_tag(:div, content, **div_options)
14
- end
15
- end
16
- end
17
- end
18
- end
@@ -1,44 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module DesignSystem
4
- module Generic
5
- module Builders
6
- # This class provides generic methods to display links on html, including button links.
7
- class Link < Base
8
- def render_link_to(name = nil, options = nil, html_options = nil, &)
9
- options ||= {}
10
- html_options ||= {}
11
-
12
- if block_given?
13
- type = options.delete(:type)
14
- options[:class] = prep_link_classes(type)
15
- else
16
- type = html_options.delete(:type)
17
- html_options[:class] = prep_link_classes(type)
18
- end
19
-
20
- link_to(name, options, html_options, &)
21
- end
22
-
23
- private
24
-
25
- def prep_link_classes(type)
26
- if type && button_type_class_hash[type].present?
27
- button_type_class_hash[type]
28
- else
29
- link_class
30
- end
31
- end
32
-
33
- def link_class
34
- case @context.instance_variable_get(:@link_context)
35
- when :notification_banner
36
- "#{brand}-notification-banner__link"
37
- else
38
- "#{brand}-link"
39
- end
40
- end
41
- end
42
- end
43
- end
44
- end
@@ -1,41 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module DesignSystem
4
- module Generic
5
- module Builders
6
- # Generic list builder.
7
- class List < Base
8
- # type: :bullet, :number
9
- def render_list(type: :default, **options)
10
- raise ArgumentError, 'block required' unless block_given?
11
-
12
- @list = ::DesignSystem::Components::List.new
13
- yield @list
14
-
15
- tag_name = type.to_sym == :number ? :ol : :ul
16
-
17
- classes = ["#{brand}-list"]
18
- classes << "#{brand}-list--bullet" if type == :bullet
19
- classes << "#{brand}-list--number" if type == :number
20
-
21
- options = css_class_options_merge(options, classes)
22
-
23
- content_tag(tag_name, **options) do
24
- render_items
25
- end
26
- end
27
-
28
- private
29
-
30
- def render_items
31
- @list.items.each_with_object(ActiveSupport::SafeBuffer.new) do |item, buffer|
32
- content = item.is_a?(Proc) ? capture(&item) : item
33
- next if content.blank?
34
-
35
- buffer.concat(content_tag(:li, content))
36
- end
37
- end
38
- end
39
- end
40
- end
41
- end
@@ -1,68 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module DesignSystem
4
- module Generic
5
- module Builders
6
- # This class provides generic methods to display notifications.
7
- class Notification < Base
8
- include ActionView::Helpers::SanitizeHelper
9
-
10
- def render_alert(msg = nil, &)
11
- content_to_display = block_given? ? capture(&) : msg
12
- content_tag(:div, class: "#{brand}-error-summary", 'aria-labelledby': 'error-summary-title', role: 'alert',
13
- tabindex: '-1') do
14
- content_tag(:h2, content_to_display,
15
- class: "#{brand}-error-summary__title", id: 'error-summary-title')
16
- end
17
- end
18
-
19
- def render_notice(msg = nil, header: nil, type: :information, &)
20
- @context.instance_variable_set(:@link_context, :notification_banner)
21
-
22
- raise ArgumentError,
23
- "Invalid notification type: #{type}. Must be one of: #{notification_type_hash.keys.join(', ')}" unless notification_type_hash.key?(type)
24
-
25
- header ||= notification_type_hash.dig(type, :header)
26
-
27
- content_to_display = block_given? ? capture(&) : msg
28
- content_tag(:div, class: notification_type_hash.dig(type, :class), role: notification_type_hash.dig(type, :role),
29
- 'aria-labelledby': "#{brand}-notification-banner-title",
30
- 'data-module': "#{brand}-notification-banner") do
31
- banner_tile(header) + banner_content(content_to_display)
32
- end
33
- end
34
-
35
- private
36
-
37
- def banner_tile(header)
38
- content_tag(:div, class: "#{brand}-notification-banner__header") do
39
- content_tag(:h2, header, class: "#{brand}-notification-banner__title",
40
- id: "#{brand}-notification-banner-title")
41
- end
42
- end
43
-
44
- def banner_content(content)
45
- content_tag(:div, class: "#{brand}-notification-banner__content") do
46
- content_tag(:p, content,
47
- class: "#{brand}-notification-banner__heading")
48
- end
49
- end
50
-
51
- def notification_type_hash
52
- {
53
- information: {
54
- header: 'Important',
55
- class: "#{brand}-notification-banner",
56
- role: 'region'
57
- },
58
- success: {
59
- header: 'Success',
60
- class: "#{brand}-notification-banner #{brand}-notification-banner--success",
61
- role: 'alert'
62
- }
63
- }
64
- end
65
- end
66
- end
67
- end
68
- end
@@ -1,18 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module DesignSystem
4
- module Generic
5
- module Builders
6
- # This generates html for rendering panel to display important information when a transaction has been completed.
7
- class Panel < Base
8
- def render_panel(title, body)
9
- safe_buffer = ActiveSupport::SafeBuffer.new
10
- content_tag(:div, class: "#{brand}-panel") do
11
- safe_buffer.concat(content_tag(:h1, title, class: "#{brand}-panel__title"))
12
- safe_buffer.concat(content_tag(:div, body, class: "#{brand}-panel__body"))
13
- end
14
- end
15
- end
16
- end
17
- end
18
- end
@@ -1,28 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module DesignSystem
4
- module Generic
5
- module Builders
6
- # This class provides generic methods to display paragraphs with typography styles.
7
- class Paragraph < Base
8
- FONT_SIZES = %i[s].freeze
9
-
10
- def render_paragraph(text = nil, size: nil, **options, &block)
11
- content = block_given? ? capture(&block) : text
12
- return if content.blank?
13
-
14
- content_tag('p', content, class: classes(size), **options)
15
- end
16
-
17
- private
18
-
19
- def classes(size)
20
- return "#{brand}-body" if size.nil?
21
- raise ArgumentError, "Invalid size: #{size}" unless size.in?(FONT_SIZES)
22
-
23
- "#{brand}-body-#{size}"
24
- end
25
- end
26
- end
27
- end
28
- end