nfg_ui 0.9.8.15

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 (384) hide show
  1. checksums.yaml +7 -0
  2. data/MIT-LICENSE +20 -0
  3. data/README.md +431 -0
  4. data/Rakefile +23 -0
  5. data/app/assets/config/nfg_ui_manifest.js +3 -0
  6. data/app/assets/images/nfg_ui/app_icon/android-chrome-192x192.png +0 -0
  7. data/app/assets/images/nfg_ui/app_icon/android-chrome-384x384.png +0 -0
  8. data/app/assets/images/nfg_ui/app_icon/apple-touch-icon.png +0 -0
  9. data/app/assets/images/nfg_ui/app_icon/browserconfig.xml.erb +9 -0
  10. data/app/assets/images/nfg_ui/app_icon/favicon-16x16.png +0 -0
  11. data/app/assets/images/nfg_ui/app_icon/favicon-32x32.png +0 -0
  12. data/app/assets/images/nfg_ui/app_icon/favicon.ico +0 -0
  13. data/app/assets/images/nfg_ui/app_icon/mstile-150x150.png +0 -0
  14. data/app/assets/images/nfg_ui/app_icon/safari-pinned-tab.svg +38 -0
  15. data/app/assets/images/nfg_ui/app_icon/site.webmanifest.erb +19 -0
  16. data/app/assets/images/nfg_ui/email/icons/fa-caret-right.png +0 -0
  17. data/app/assets/images/nfg_ui/email/icons/fa-facebook.png +0 -0
  18. data/app/assets/images/nfg_ui/email/icons/fa-linkedin.png +0 -0
  19. data/app/assets/images/nfg_ui/email/icons/fa-twitter.png +0 -0
  20. data/app/assets/images/nfg_ui/email/icons/fa-youtube.png +0 -0
  21. data/app/assets/images/nfg_ui/email/nfg-logo.png +0 -0
  22. data/app/assets/javascripts/nfg_ui/application.coffee +16 -0
  23. data/app/assets/javascripts/nfg_ui/collapsible_toggle.coffee +47 -0
  24. data/app/assets/javascripts/nfg_ui/prevent_clickable_disabled_element.coffee +47 -0
  25. data/app/assets/javascripts/nfg_ui/vendor/select2.coffee +26 -0
  26. data/app/assets/javascripts/nfg_ui/vendor/tooltips.coffee +18 -0
  27. data/app/assets/stylesheets/nfg_ui/bootstrap/application.scss +2 -0
  28. data/app/assets/stylesheets/nfg_ui/network_for_good/admin/_variables.scss +1123 -0
  29. data/app/assets/stylesheets/nfg_ui/network_for_good/admin/application.scss +23 -0
  30. data/app/assets/stylesheets/nfg_ui/network_for_good/admin/nfg_theme/_alert.scss +2 -0
  31. data/app/assets/stylesheets/nfg_ui/network_for_good/admin/nfg_theme/_backgrounds.scss +9 -0
  32. data/app/assets/stylesheets/nfg_ui/network_for_good/admin/nfg_theme/_button-group.scss +8 -0
  33. data/app/assets/stylesheets/nfg_ui/network_for_good/admin/nfg_theme/_buttons.scss +17 -0
  34. data/app/assets/stylesheets/nfg_ui/network_for_good/admin/nfg_theme/_card.scss +20 -0
  35. data/app/assets/stylesheets/nfg_ui/network_for_good/admin/nfg_theme/_custom.scss +20 -0
  36. data/app/assets/stylesheets/nfg_ui/network_for_good/admin/nfg_theme/_custom_forms.scss +156 -0
  37. data/app/assets/stylesheets/nfg_ui/network_for_good/admin/nfg_theme/_dropdown.scss +24 -0
  38. data/app/assets/stylesheets/nfg_ui/network_for_good/admin/nfg_theme/_forms.scss +85 -0
  39. data/app/assets/stylesheets/nfg_ui/network_for_good/admin/nfg_theme/_media.scss +2 -0
  40. data/app/assets/stylesheets/nfg_ui/network_for_good/admin/nfg_theme/_nav.scss +22 -0
  41. data/app/assets/stylesheets/nfg_ui/network_for_good/admin/nfg_theme/_navbar.scss +132 -0
  42. data/app/assets/stylesheets/nfg_ui/network_for_good/admin/nfg_theme/_progress.scss +3 -0
  43. data/app/assets/stylesheets/nfg_ui/network_for_good/admin/nfg_theme/_reboot.scss +31 -0
  44. data/app/assets/stylesheets/nfg_ui/network_for_good/admin/nfg_theme/_tables.scss +7 -0
  45. data/app/assets/stylesheets/nfg_ui/network_for_good/admin/nfg_theme/_tooltip.scss +5 -0
  46. data/app/assets/stylesheets/nfg_ui/network_for_good/admin/nfg_theme/_type.scss +82 -0
  47. data/app/assets/stylesheets/nfg_ui/network_for_good/admin/nfg_theme/custom/_campaign_card.scss +6 -0
  48. data/app/assets/stylesheets/nfg_ui/network_for_good/admin/nfg_theme/custom/_campaign_preview.scss +25 -0
  49. data/app/assets/stylesheets/nfg_ui/network_for_good/admin/nfg_theme/custom/_content_section_buttons.scss +11 -0
  50. data/app/assets/stylesheets/nfg_ui/network_for_good/admin/nfg_theme/custom/_custom_questions_questionnaire.scss +84 -0
  51. data/app/assets/stylesheets/nfg_ui/network_for_good/admin/nfg_theme/custom/_custom_receipt_language.scss +15 -0
  52. data/app/assets/stylesheets/nfg_ui/network_for_good/admin/nfg_theme/custom/_email_preview.scss +24 -0
  53. data/app/assets/stylesheets/nfg_ui/network_for_good/admin/nfg_theme/custom/_interaction.scss +2 -0
  54. data/app/assets/stylesheets/nfg_ui/network_for_good/admin/nfg_theme/custom/_mobile.scss +4 -0
  55. data/app/assets/stylesheets/nfg_ui/network_for_good/admin/nfg_theme/custom/_nav_step.scss +95 -0
  56. data/app/assets/stylesheets/nfg_ui/network_for_good/admin/nfg_theme/custom/_overlay_blocker.scss +49 -0
  57. data/app/assets/stylesheets/nfg_ui/network_for_good/admin/nfg_theme/custom/_page_header.scss +9 -0
  58. data/app/assets/stylesheets/nfg_ui/network_for_good/admin/nfg_theme/custom/_product_icons.scss +45 -0
  59. data/app/assets/stylesheets/nfg_ui/network_for_good/admin/nfg_theme/custom/_redactor.scss +25 -0
  60. data/app/assets/stylesheets/nfg_ui/network_for_good/admin/nfg_theme/custom/_share_dropdown.scss +53 -0
  61. data/app/assets/stylesheets/nfg_ui/network_for_good/admin/nfg_theme/custom/_slat.scss +113 -0
  62. data/app/assets/stylesheets/nfg_ui/network_for_good/admin/nfg_theme/custom/_social_share.scss +44 -0
  63. data/app/assets/stylesheets/nfg_ui/network_for_good/admin/nfg_theme/custom/_status_indicator.scss +9 -0
  64. data/app/assets/stylesheets/nfg_ui/network_for_good/admin/nfg_theme/custom/_ticket.scss +12 -0
  65. data/app/assets/stylesheets/nfg_ui/network_for_good/admin/nfg_theme/custom/_tile.scss +71 -0
  66. data/app/assets/stylesheets/nfg_ui/network_for_good/email/application.scss +38 -0
  67. data/app/assets/stylesheets/nfg_ui/network_for_good/email/foundation_emails/_alignment.scss +93 -0
  68. data/app/assets/stylesheets/nfg_ui/network_for_good/email/foundation_emails/_button.scss +345 -0
  69. data/app/assets/stylesheets/nfg_ui/network_for_good/email/nfg_theme/_backgrounds.scss +15 -0
  70. data/app/assets/stylesheets/nfg_ui/network_for_good/email/nfg_theme/_layout.scss +33 -0
  71. data/app/assets/stylesheets/nfg_ui/network_for_good/email/nfg_theme/_rainbow_bar.scss +47 -0
  72. data/app/assets/stylesheets/nfg_ui/network_for_good/email/nfg_theme/_spacers.scss +60 -0
  73. data/app/assets/stylesheets/nfg_ui/network_for_good/email/nfg_theme/_typography.scss +6 -0
  74. data/app/assets/stylesheets/nfg_ui/network_for_good/email/settings/_settings.scss +148 -0
  75. data/app/assets/stylesheets/nfg_ui/network_for_good/public/_variables.scss +1124 -0
  76. data/app/assets/stylesheets/nfg_ui/network_for_good/public/application.scss +23 -0
  77. data/app/assets/stylesheets/nfg_ui/network_for_good/public/entity_branding/application.scss +19 -0
  78. data/app/assets/stylesheets/nfg_ui/network_for_good/public/entity_branding/nfg_theme/_badge.scss +6 -0
  79. data/app/assets/stylesheets/nfg_ui/network_for_good/public/entity_branding/nfg_theme/_buttons.scss +43 -0
  80. data/app/assets/stylesheets/nfg_ui/network_for_good/public/entity_branding/nfg_theme/_custom.scss +3 -0
  81. data/app/assets/stylesheets/nfg_ui/network_for_good/public/entity_branding/nfg_theme/_custom_forms.scss +50 -0
  82. data/app/assets/stylesheets/nfg_ui/network_for_good/public/entity_branding/nfg_theme/_forms.scss +12 -0
  83. data/app/assets/stylesheets/nfg_ui/network_for_good/public/entity_branding/nfg_theme/_functions.scss +29 -0
  84. data/app/assets/stylesheets/nfg_ui/network_for_good/public/entity_branding/nfg_theme/_navbar.scss +18 -0
  85. data/app/assets/stylesheets/nfg_ui/network_for_good/public/entity_branding/nfg_theme/_reboot.scss +6 -0
  86. data/app/assets/stylesheets/nfg_ui/network_for_good/public/entity_branding/nfg_theme/_type.scss +16 -0
  87. data/app/assets/stylesheets/nfg_ui/network_for_good/public/entity_branding/nfg_theme/_utilities.scss +8 -0
  88. data/app/assets/stylesheets/nfg_ui/network_for_good/public/entity_branding/nfg_theme/custom/_everyday_default.scss +6 -0
  89. data/app/assets/stylesheets/nfg_ui/network_for_good/public/entity_branding/nfg_theme/custom/_nav_step.scss +20 -0
  90. data/app/assets/stylesheets/nfg_ui/network_for_good/public/entity_branding/plugins/_select2.scss +16 -0
  91. data/app/assets/stylesheets/nfg_ui/network_for_good/public/legacy_browser_support/_variables.scss +13 -0
  92. data/app/assets/stylesheets/nfg_ui/network_for_good/public/legacy_browser_support/application.scss +35 -0
  93. data/app/assets/stylesheets/nfg_ui/network_for_good/public/legacy_browser_support/nfg_theme/_breadcrumb.scss +4 -0
  94. data/app/assets/stylesheets/nfg_ui/network_for_good/public/legacy_browser_support/nfg_theme/_button-group.scss +10 -0
  95. data/app/assets/stylesheets/nfg_ui/network_for_good/public/legacy_browser_support/nfg_theme/_card.scss +45 -0
  96. data/app/assets/stylesheets/nfg_ui/network_for_good/public/legacy_browser_support/nfg_theme/_carousel.scss +18 -0
  97. data/app/assets/stylesheets/nfg_ui/network_for_good/public/legacy_browser_support/nfg_theme/_custom-forms.scss +12 -0
  98. data/app/assets/stylesheets/nfg_ui/network_for_good/public/legacy_browser_support/nfg_theme/_custom.scss +4 -0
  99. data/app/assets/stylesheets/nfg_ui/network_for_good/public/legacy_browser_support/nfg_theme/_forms.scss +68 -0
  100. data/app/assets/stylesheets/nfg_ui/network_for_good/public/legacy_browser_support/nfg_theme/_grid.scss +4 -0
  101. data/app/assets/stylesheets/nfg_ui/network_for_good/public/legacy_browser_support/nfg_theme/_input-group.scss +25 -0
  102. data/app/assets/stylesheets/nfg_ui/network_for_good/public/legacy_browser_support/nfg_theme/_list-group.scss +9 -0
  103. data/app/assets/stylesheets/nfg_ui/network_for_good/public/legacy_browser_support/nfg_theme/_media.scss +5 -0
  104. data/app/assets/stylesheets/nfg_ui/network_for_good/public/legacy_browser_support/nfg_theme/_mixins.scss +6 -0
  105. data/app/assets/stylesheets/nfg_ui/network_for_good/public/legacy_browser_support/nfg_theme/_modal.scss +28 -0
  106. data/app/assets/stylesheets/nfg_ui/network_for_good/public/legacy_browser_support/nfg_theme/_nav.scss +21 -0
  107. data/app/assets/stylesheets/nfg_ui/network_for_good/public/legacy_browser_support/nfg_theme/_navbar.scss +54 -0
  108. data/app/assets/stylesheets/nfg_ui/network_for_good/public/legacy_browser_support/nfg_theme/_pagination.scss +1 -0
  109. data/app/assets/stylesheets/nfg_ui/network_for_good/public/legacy_browser_support/nfg_theme/_progress.scss +6 -0
  110. data/app/assets/stylesheets/nfg_ui/network_for_good/public/legacy_browser_support/nfg_theme/_utilities.scss +2 -0
  111. data/app/assets/stylesheets/nfg_ui/network_for_good/public/legacy_browser_support/nfg_theme/custom/_everyday_giving.scss +8 -0
  112. data/app/assets/stylesheets/nfg_ui/network_for_good/public/legacy_browser_support/nfg_theme/custom/_nav_step.scss +13 -0
  113. data/app/assets/stylesheets/nfg_ui/network_for_good/public/legacy_browser_support/nfg_theme/custom/_slat.scss +66 -0
  114. data/app/assets/stylesheets/nfg_ui/network_for_good/public/legacy_browser_support/nfg_theme/mixins/_breakpoints.scss +123 -0
  115. data/app/assets/stylesheets/nfg_ui/network_for_good/public/legacy_browser_support/nfg_theme/mixins/_grid-framework.scss +30 -0
  116. data/app/assets/stylesheets/nfg_ui/network_for_good/public/legacy_browser_support/nfg_theme/mixins/_grid.scss +10 -0
  117. data/app/assets/stylesheets/nfg_ui/network_for_good/public/legacy_browser_support/nfg_theme/utilities/_display.scss +9 -0
  118. data/app/assets/stylesheets/nfg_ui/network_for_good/public/legacy_browser_support/nfg_theme/utilities/_flex.scss +49 -0
  119. data/app/assets/stylesheets/nfg_ui/network_for_good/public/legacy_browser_support/plugins/_sticky_div.scss +9 -0
  120. data/app/assets/stylesheets/nfg_ui/network_for_good/public/nfg_theme/_alert.scss +2 -0
  121. data/app/assets/stylesheets/nfg_ui/network_for_good/public/nfg_theme/_buttons.scss +17 -0
  122. data/app/assets/stylesheets/nfg_ui/network_for_good/public/nfg_theme/_card.scss +6 -0
  123. data/app/assets/stylesheets/nfg_ui/network_for_good/public/nfg_theme/_carousel.scss +9 -0
  124. data/app/assets/stylesheets/nfg_ui/network_for_good/public/nfg_theme/_custom.scss +12 -0
  125. data/app/assets/stylesheets/nfg_ui/network_for_good/public/nfg_theme/_custom_forms.scss +156 -0
  126. data/app/assets/stylesheets/nfg_ui/network_for_good/public/nfg_theme/_dropdown.scss +1 -0
  127. data/app/assets/stylesheets/nfg_ui/network_for_good/public/nfg_theme/_event.scss +19 -0
  128. data/app/assets/stylesheets/nfg_ui/network_for_good/public/nfg_theme/_forms.scss +83 -0
  129. data/app/assets/stylesheets/nfg_ui/network_for_good/public/nfg_theme/_list-group.scss +12 -0
  130. data/app/assets/stylesheets/nfg_ui/network_for_good/public/nfg_theme/_progress.scss +9 -0
  131. data/app/assets/stylesheets/nfg_ui/network_for_good/public/nfg_theme/_reboot.scss +31 -0
  132. data/app/assets/stylesheets/nfg_ui/network_for_good/public/nfg_theme/_tooltip.scss +5 -0
  133. data/app/assets/stylesheets/nfg_ui/network_for_good/public/nfg_theme/_type.scss +81 -0
  134. data/app/assets/stylesheets/nfg_ui/network_for_good/public/nfg_theme/custom/_admin_bar.scss +20 -0
  135. data/app/assets/stylesheets/nfg_ui/network_for_good/public/nfg_theme/custom/_background_variations.scss +12 -0
  136. data/app/assets/stylesheets/nfg_ui/network_for_good/public/nfg_theme/custom/_everyday_default.scss +43 -0
  137. data/app/assets/stylesheets/nfg_ui/network_for_good/public/nfg_theme/custom/_everyday_story.scss +21 -0
  138. data/app/assets/stylesheets/nfg_ui/network_for_good/public/nfg_theme/custom/_footer_links.scss +8 -0
  139. data/app/assets/stylesheets/nfg_ui/network_for_good/public/nfg_theme/custom/_nav_step.scss +95 -0
  140. data/app/assets/stylesheets/nfg_ui/network_for_good/public/nfg_theme/custom/_slat.scss +110 -0
  141. data/app/assets/stylesheets/nfg_ui/network_for_good/public/nfg_theme/custom/_social_share.scss +44 -0
  142. data/app/assets/stylesheets/nfg_ui/network_for_good/public/nfg_theme/custom/_ticket.scss +12 -0
  143. data/app/assets/stylesheets/nfg_ui/network_for_good/public/nfg_theme/custom/_tile.scss +63 -0
  144. data/app/assets/stylesheets/nfg_ui/network_for_good/public/nfg_theme/custom/_user_navbar.scss +33 -0
  145. data/app/assets/stylesheets/nfg_ui/network_for_good/public/plugins/_datepicker.scss +2 -0
  146. data/app/assets/stylesheets/nfg_ui/network_for_good/public/plugins/_select2.scss +216 -0
  147. data/app/assets/stylesheets/nfg_ui/network_for_good/public/plugins/_sticky_div.scss +11 -0
  148. data/app/controllers/nfg_ui/application_controller.rb +5 -0
  149. data/app/helpers/nfg_ui/application_helper.rb +27 -0
  150. data/app/helpers/nfg_ui/components/email_helpers.rb +8 -0
  151. data/app/helpers/nfg_ui/components/resource_themes_helper.rb +8 -0
  152. data/app/helpers/nfg_ui/components/tooltip_helper.rb +24 -0
  153. data/app/models/nfg_ui/application_record.rb +5 -0
  154. data/app/views/nfg_ui/app_icons/_icons.html.haml +10 -0
  155. data/app/views/nfg_ui/email/README.md +12 -0
  156. data/app/views/nfg_ui/email/_button.html.haml +12 -0
  157. data/app/views/nfg_ui/email/_email_signature.html.haml +4 -0
  158. data/app/views/nfg_ui/email/_footer.html.haml +16 -0
  159. data/app/views/nfg_ui/email/_header.html.haml +6 -0
  160. data/app/views/nfg_ui/email/_logo.html.haml +6 -0
  161. data/app/views/nfg_ui/email/_product_content_image.html.haml +7 -0
  162. data/app/views/nfg_ui/email/_rainbow_bar.html.haml +10 -0
  163. data/app/views/nfg_ui/email/_section_header.html.haml +8 -0
  164. data/app/views/nfg_ui/email/_social_network_link.html.haml +12 -0
  165. data/app/views/nfg_ui/email/_sub_footer.html.haml +9 -0
  166. data/app/views/nfg_ui/email/_table_row.html.haml +13 -0
  167. data/config/initializers/web_app_manifest.rb +3 -0
  168. data/config/locales/email.yml +34 -0
  169. data/config/locales/en.yml +63 -0
  170. data/config/routes.rb +2 -0
  171. data/config/spring.rb +1 -0
  172. data/lib/nfg_ui/bootstrap/components/alert.rb +52 -0
  173. data/lib/nfg_ui/bootstrap/components/badge.rb +39 -0
  174. data/lib/nfg_ui/bootstrap/components/base.rb +151 -0
  175. data/lib/nfg_ui/bootstrap/components/breadcrumb.rb +23 -0
  176. data/lib/nfg_ui/bootstrap/components/breadcrumb_item.rb +28 -0
  177. data/lib/nfg_ui/bootstrap/components/button.rb +74 -0
  178. data/lib/nfg_ui/bootstrap/components/button_group.rb +36 -0
  179. data/lib/nfg_ui/bootstrap/components/button_toolbar.rb +21 -0
  180. data/lib/nfg_ui/bootstrap/components/card.rb +81 -0
  181. data/lib/nfg_ui/bootstrap/components/card_body.rb +15 -0
  182. data/lib/nfg_ui/bootstrap/components/card_footer.rb +15 -0
  183. data/lib/nfg_ui/bootstrap/components/card_header.rb +35 -0
  184. data/lib/nfg_ui/bootstrap/components/card_image.rb +33 -0
  185. data/lib/nfg_ui/bootstrap/components/card_image_overlay.rb +46 -0
  186. data/lib/nfg_ui/bootstrap/components/carousel.rb +57 -0
  187. data/lib/nfg_ui/bootstrap/components/carousel_caption.rb +34 -0
  188. data/lib/nfg_ui/bootstrap/components/carousel_control.rb +73 -0
  189. data/lib/nfg_ui/bootstrap/components/carousel_indicators.rb +54 -0
  190. data/lib/nfg_ui/bootstrap/components/carousel_item.rb +49 -0
  191. data/lib/nfg_ui/bootstrap/components/collapse.rb +32 -0
  192. data/lib/nfg_ui/bootstrap/components/dropdown.rb +51 -0
  193. data/lib/nfg_ui/bootstrap/components/dropdown_divider.rb +19 -0
  194. data/lib/nfg_ui/bootstrap/components/dropdown_header.rb +23 -0
  195. data/lib/nfg_ui/bootstrap/components/dropdown_item.rb +41 -0
  196. data/lib/nfg_ui/bootstrap/components/dropdown_menu.rb +32 -0
  197. data/lib/nfg_ui/bootstrap/components/dropdown_toggle.rb +82 -0
  198. data/lib/nfg_ui/bootstrap/components/embed.rb +80 -0
  199. data/lib/nfg_ui/bootstrap/components/form.rb +13 -0
  200. data/lib/nfg_ui/bootstrap/components/input_group.rb +13 -0
  201. data/lib/nfg_ui/bootstrap/components/jumbotron.rb +13 -0
  202. data/lib/nfg_ui/bootstrap/components/list_group.rb +39 -0
  203. data/lib/nfg_ui/bootstrap/components/list_group_item.rb +69 -0
  204. data/lib/nfg_ui/bootstrap/components/media.rb +15 -0
  205. data/lib/nfg_ui/bootstrap/components/media_body.rb +15 -0
  206. data/lib/nfg_ui/bootstrap/components/media_object.rb +23 -0
  207. data/lib/nfg_ui/bootstrap/components/modal.rb +66 -0
  208. data/lib/nfg_ui/bootstrap/components/modal_body.rb +16 -0
  209. data/lib/nfg_ui/bootstrap/components/modal_footer.rb +16 -0
  210. data/lib/nfg_ui/bootstrap/components/modal_header.rb +37 -0
  211. data/lib/nfg_ui/bootstrap/components/nav.rb +71 -0
  212. data/lib/nfg_ui/bootstrap/components/nav_item.rb +103 -0
  213. data/lib/nfg_ui/bootstrap/components/nav_link.rb +62 -0
  214. data/lib/nfg_ui/bootstrap/components/navbar.rb +97 -0
  215. data/lib/nfg_ui/bootstrap/components/navbar_brand.rb +25 -0
  216. data/lib/nfg_ui/bootstrap/components/navbar_nav.rb +48 -0
  217. data/lib/nfg_ui/bootstrap/components/navbar_text.rb +21 -0
  218. data/lib/nfg_ui/bootstrap/components/navbar_toggler.rb +38 -0
  219. data/lib/nfg_ui/bootstrap/components/page_item.rb +66 -0
  220. data/lib/nfg_ui/bootstrap/components/pagination.rb +30 -0
  221. data/lib/nfg_ui/bootstrap/components/popover.rb +12 -0
  222. data/lib/nfg_ui/bootstrap/components/progress.rb +44 -0
  223. data/lib/nfg_ui/bootstrap/components/progress_bar.rb +51 -0
  224. data/lib/nfg_ui/bootstrap/components/tab_content.rb +15 -0
  225. data/lib/nfg_ui/bootstrap/components/tab_pane.rb +49 -0
  226. data/lib/nfg_ui/bootstrap/components/table.rb +17 -0
  227. data/lib/nfg_ui/bootstrap/readme.md +1 -0
  228. data/lib/nfg_ui/bootstrap/utilities/activatable.rb +32 -0
  229. data/lib/nfg_ui/bootstrap/utilities/alignable.rb +33 -0
  230. data/lib/nfg_ui/bootstrap/utilities/collapse_toggleable.rb +35 -0
  231. data/lib/nfg_ui/bootstrap/utilities/collapsible.rb +42 -0
  232. data/lib/nfg_ui/bootstrap/utilities/disableable.rb +49 -0
  233. data/lib/nfg_ui/bootstrap/utilities/dismissible.rb +24 -0
  234. data/lib/nfg_ui/bootstrap/utilities/dropdown_directionable.rb +40 -0
  235. data/lib/nfg_ui/bootstrap/utilities/headable.rb +20 -0
  236. data/lib/nfg_ui/bootstrap/utilities/modalable.rb +104 -0
  237. data/lib/nfg_ui/bootstrap/utilities/progressable.rb +42 -0
  238. data/lib/nfg_ui/bootstrap/utilities/remotable.rb +24 -0
  239. data/lib/nfg_ui/bootstrap/utilities/sizable.rb +40 -0
  240. data/lib/nfg_ui/bootstrap/utilities/themeable.rb +51 -0
  241. data/lib/nfg_ui/bootstrap/utilities/tooltipable.rb +95 -0
  242. data/lib/nfg_ui/bootstrap/utilities/wrappable.rb +48 -0
  243. data/lib/nfg_ui/components/base.rb +14 -0
  244. data/lib/nfg_ui/components/elements/activity.rb +10 -0
  245. data/lib/nfg_ui/components/elements/alert.rb +63 -0
  246. data/lib/nfg_ui/components/elements/badge.rb +32 -0
  247. data/lib/nfg_ui/components/elements/breadcrumb.rb +16 -0
  248. data/lib/nfg_ui/components/elements/breadcrumb_item.rb +16 -0
  249. data/lib/nfg_ui/components/elements/button.rb +97 -0
  250. data/lib/nfg_ui/components/elements/card_body.rb +15 -0
  251. data/lib/nfg_ui/components/elements/card_footer.rb +14 -0
  252. data/lib/nfg_ui/components/elements/card_header.rb +14 -0
  253. data/lib/nfg_ui/components/elements/card_image.rb +14 -0
  254. data/lib/nfg_ui/components/elements/card_image_overlay.rb +14 -0
  255. data/lib/nfg_ui/components/elements/carousel_caption.rb +14 -0
  256. data/lib/nfg_ui/components/elements/carousel_control.rb +14 -0
  257. data/lib/nfg_ui/components/elements/carousel_indicators.rb +23 -0
  258. data/lib/nfg_ui/components/elements/carousel_item.rb +16 -0
  259. data/lib/nfg_ui/components/elements/chart.rb +11 -0
  260. data/lib/nfg_ui/components/elements/dropdown_divider.rb +14 -0
  261. data/lib/nfg_ui/components/elements/dropdown_header.rb +14 -0
  262. data/lib/nfg_ui/components/elements/dropdown_item.rb +78 -0
  263. data/lib/nfg_ui/components/elements/dropdown_toggle.rb +37 -0
  264. data/lib/nfg_ui/components/elements/embed.rb +15 -0
  265. data/lib/nfg_ui/components/elements/form_control.rb +18 -0
  266. data/lib/nfg_ui/components/elements/input_group.rb +14 -0
  267. data/lib/nfg_ui/components/elements/key.rb +11 -0
  268. data/lib/nfg_ui/components/elements/list_group_item.rb +14 -0
  269. data/lib/nfg_ui/components/elements/loader.rb +11 -0
  270. data/lib/nfg_ui/components/elements/media_body.rb +14 -0
  271. data/lib/nfg_ui/components/elements/media_object.rb +12 -0
  272. data/lib/nfg_ui/components/elements/modal_body.rb +14 -0
  273. data/lib/nfg_ui/components/elements/modal_footer.rb +14 -0
  274. data/lib/nfg_ui/components/elements/modal_header.rb +14 -0
  275. data/lib/nfg_ui/components/elements/nav.rb +19 -0
  276. data/lib/nfg_ui/components/elements/nav_item.rb +39 -0
  277. data/lib/nfg_ui/components/elements/nav_link.rb +33 -0
  278. data/lib/nfg_ui/components/elements/navbar_brand.rb +15 -0
  279. data/lib/nfg_ui/components/elements/navbar_text.rb +14 -0
  280. data/lib/nfg_ui/components/elements/navbar_toggler.rb +14 -0
  281. data/lib/nfg_ui/components/elements/page_item.rb +14 -0
  282. data/lib/nfg_ui/components/elements/popover.rb +14 -0
  283. data/lib/nfg_ui/components/elements/progress_bar.rb +62 -0
  284. data/lib/nfg_ui/components/elements/slat_action.rb +14 -0
  285. data/lib/nfg_ui/components/elements/slat_body.rb +14 -0
  286. data/lib/nfg_ui/components/elements/slat_item.rb +62 -0
  287. data/lib/nfg_ui/components/elements/stat.rb +11 -0
  288. data/lib/nfg_ui/components/elements/step.rb +55 -0
  289. data/lib/nfg_ui/components/elements/step_indicator.rb +41 -0
  290. data/lib/nfg_ui/components/elements/tab_pane.rb +15 -0
  291. data/lib/nfg_ui/components/elements/table.rb +14 -0
  292. data/lib/nfg_ui/components/elements/task.rb +11 -0
  293. data/lib/nfg_ui/components/elements.rb +58 -0
  294. data/lib/nfg_ui/components/foundations/color.rb +11 -0
  295. data/lib/nfg_ui/components/foundations/grid.rb +11 -0
  296. data/lib/nfg_ui/components/foundations/icon.rb +82 -0
  297. data/lib/nfg_ui/components/foundations/image.rb +14 -0
  298. data/lib/nfg_ui/components/foundations/input.rb +11 -0
  299. data/lib/nfg_ui/components/foundations/typeface.rb +122 -0
  300. data/lib/nfg_ui/components/patterns/activity_feed.rb +11 -0
  301. data/lib/nfg_ui/components/patterns/button_group.rb +23 -0
  302. data/lib/nfg_ui/components/patterns/button_toolbar.rb +20 -0
  303. data/lib/nfg_ui/components/patterns/card.rb +39 -0
  304. data/lib/nfg_ui/components/patterns/carousel.rb +31 -0
  305. data/lib/nfg_ui/components/patterns/collapse.rb +31 -0
  306. data/lib/nfg_ui/components/patterns/dropdown.rb +27 -0
  307. data/lib/nfg_ui/components/patterns/dropdown_menu.rb +16 -0
  308. data/lib/nfg_ui/components/patterns/empty_state.rb +11 -0
  309. data/lib/nfg_ui/components/patterns/filter_bar.rb +11 -0
  310. data/lib/nfg_ui/components/patterns/form_group.rb +11 -0
  311. data/lib/nfg_ui/components/patterns/graph.rb +11 -0
  312. data/lib/nfg_ui/components/patterns/jumbotron.rb +14 -0
  313. data/lib/nfg_ui/components/patterns/list_group.rb +16 -0
  314. data/lib/nfg_ui/components/patterns/media.rb +14 -0
  315. data/lib/nfg_ui/components/patterns/modal.rb +15 -0
  316. data/lib/nfg_ui/components/patterns/navbar.rb +17 -0
  317. data/lib/nfg_ui/components/patterns/navbar_nav.rb +17 -0
  318. data/lib/nfg_ui/components/patterns/page_header.rb +85 -0
  319. data/lib/nfg_ui/components/patterns/pagination.rb +14 -0
  320. data/lib/nfg_ui/components/patterns/progress.rb +24 -0
  321. data/lib/nfg_ui/components/patterns/slat.rb +14 -0
  322. data/lib/nfg_ui/components/patterns/slat_actions.rb +115 -0
  323. data/lib/nfg_ui/components/patterns/slat_header.rb +23 -0
  324. data/lib/nfg_ui/components/patterns/slat_list.rb +18 -0
  325. data/lib/nfg_ui/components/patterns/slats.rb +14 -0
  326. data/lib/nfg_ui/components/patterns/steps.rb +27 -0
  327. data/lib/nfg_ui/components/patterns/tab_content.rb +14 -0
  328. data/lib/nfg_ui/components/patterns/task_list.rb +11 -0
  329. data/lib/nfg_ui/components/patterns/tile.rb +58 -0
  330. data/lib/nfg_ui/components/patterns/tile_body.rb +29 -0
  331. data/lib/nfg_ui/components/patterns/tile_header.rb +40 -0
  332. data/lib/nfg_ui/components/patterns/tile_section.rb +29 -0
  333. data/lib/nfg_ui/components/traits/active.rb +14 -0
  334. data/lib/nfg_ui/components/traits/alert.rb +36 -0
  335. data/lib/nfg_ui/components/traits/alignment.rb +26 -0
  336. data/lib/nfg_ui/components/traits/button.rb +47 -0
  337. data/lib/nfg_ui/components/traits/button_group.rb +22 -0
  338. data/lib/nfg_ui/components/traits/card.rb +14 -0
  339. data/lib/nfg_ui/components/traits/collapse.rb +29 -0
  340. data/lib/nfg_ui/components/traits/disable.rb +19 -0
  341. data/lib/nfg_ui/components/traits/disable_with.rb +14 -0
  342. data/lib/nfg_ui/components/traits/dismiss.rb +16 -0
  343. data/lib/nfg_ui/components/traits/dropdown_toggle.rb +14 -0
  344. data/lib/nfg_ui/components/traits/icon.rb +16 -0
  345. data/lib/nfg_ui/components/traits/list_group.rb +16 -0
  346. data/lib/nfg_ui/components/traits/muted.rb +16 -0
  347. data/lib/nfg_ui/components/traits/nav.rb +26 -0
  348. data/lib/nfg_ui/components/traits/nav_item.rb +16 -0
  349. data/lib/nfg_ui/components/traits/navbar.rb +18 -0
  350. data/lib/nfg_ui/components/traits/page_header.rb +16 -0
  351. data/lib/nfg_ui/components/traits/pill.rb +14 -0
  352. data/lib/nfg_ui/components/traits/progress_bar.rb +24 -0
  353. data/lib/nfg_ui/components/traits/remote.rb +14 -0
  354. data/lib/nfg_ui/components/traits/size.rb +18 -0
  355. data/lib/nfg_ui/components/traits/slat_item.rb +28 -0
  356. data/lib/nfg_ui/components/traits/step.rb +14 -0
  357. data/lib/nfg_ui/components/traits/theme.rb +57 -0
  358. data/lib/nfg_ui/components/traits/typeface.rb +53 -0
  359. data/lib/nfg_ui/components/traits/vertical.rb +16 -0
  360. data/lib/nfg_ui/components/traits.rb +43 -0
  361. data/lib/nfg_ui/components/utilities/browser_detectable.rb +16 -0
  362. data/lib/nfg_ui/components/utilities/confirmable.rb +24 -0
  363. data/lib/nfg_ui/components/utilities/describable.rb +22 -0
  364. data/lib/nfg_ui/components/utilities/disable_withable.rb +26 -0
  365. data/lib/nfg_ui/components/utilities/emailable.rb +44 -0
  366. data/lib/nfg_ui/components/utilities/iconable.rb +20 -0
  367. data/lib/nfg_ui/components/utilities/left_iconable.rb +22 -0
  368. data/lib/nfg_ui/components/utilities/methodable.rb +24 -0
  369. data/lib/nfg_ui/components/utilities/renderable.rb +24 -0
  370. data/lib/nfg_ui/components/utilities/resource_themeable.rb +49 -0
  371. data/lib/nfg_ui/components/utilities/titleable.rb +20 -0
  372. data/lib/nfg_ui/components/utilities/traitable.rb +32 -0
  373. data/lib/nfg_ui/components/utilities/vertically_alignable.rb +31 -0
  374. data/lib/nfg_ui/components/utilities.rb +22 -0
  375. data/lib/nfg_ui/engine.rb +45 -0
  376. data/lib/nfg_ui/ui/base.rb +35 -0
  377. data/lib/nfg_ui/ui/bootstrap.rb +44 -0
  378. data/lib/nfg_ui/ui/network_for_good.rb +54 -0
  379. data/lib/nfg_ui/ui/utilities/initializer.rb +88 -0
  380. data/lib/nfg_ui/ui/utilities.rb +10 -0
  381. data/lib/nfg_ui/version.rb +5 -0
  382. data/lib/nfg_ui.rb +174 -0
  383. data/lib/tasks/nfg_ui_tasks.rake +53 -0
  384. metadata +741 -0
@@ -0,0 +1,88 @@
1
+ # frozen_string_literal: true
2
+
3
+ module NfgUi
4
+ module UI
5
+ module Utilities
6
+ # Centralizes initialization for the UI namespaces
7
+ module Initializer
8
+ attr_accessor :component,
9
+ :options,
10
+ :traits,
11
+ :component_name,
12
+ :class_name
13
+
14
+ # Protect the component from outside manipulation
15
+ # after initialization
16
+ private :component=
17
+
18
+ include ActionView::Helpers::CaptureHelper # add capture support, required for Haml
19
+ include Haml::Helpers # add capture_haml support
20
+
21
+ def render_component
22
+ component.render
23
+ rescue NotImplementedError
24
+ view_context.render partial: partial_path, locals: { component_name => component }
25
+ end
26
+
27
+ private
28
+
29
+ def render_if
30
+ options.fetch(:render_if, true)
31
+ end
32
+
33
+ def render_unless
34
+ options.fetch(:render_unless, true)
35
+ end
36
+
37
+ # Provides a central initialization method for NfgUi::UI::Base child classes
38
+ def initializer(component_name = nil, *traits, **options, &block)
39
+ # #init_haml_helpers is required when utilizing #capture with HAML
40
+ # (when outside of Rails)
41
+ # https://www.rubydoc.info/github/haml/haml/Haml%2FHelpers:init_haml_helpers
42
+ init_haml_helpers
43
+ @component_name = component_name
44
+ @class_name = component_name.to_s.camelize
45
+ @traits = traits
46
+ @options = options
47
+
48
+ options[:body] = capture(&block) if block_given?
49
+ options[:traits] = traits.present? ? traits : []
50
+
51
+ # self.view_context = view_context
52
+ self.component = ancestry_string.constantize.new(options, view_context)
53
+ end
54
+
55
+ def ancestry_string
56
+ ''
57
+ end
58
+
59
+ # def component_name_folder
60
+ # @component_name_folder ||= ''
61
+ # end
62
+
63
+ def component_family
64
+ component.component_family.presence
65
+ end
66
+
67
+ def components_within_group(*)
68
+ []
69
+ end
70
+
71
+ def grouping_folder
72
+ ''
73
+ end
74
+
75
+ def group; end
76
+
77
+ def partial_path
78
+ [
79
+ 'nfg_ui',
80
+ grouping_folder,
81
+ (component_name_folder if component_name_folder.present?),
82
+ component_name
83
+ ].reject(&:nil?).join('/').chomp
84
+ end
85
+ end
86
+ end
87
+ end
88
+ end
@@ -0,0 +1,10 @@
1
+ # frozen_string_literal: true
2
+
3
+ module NfgUi
4
+ module UI
5
+ module Utilities
6
+ extend ActiveSupport::Autoload
7
+ autoload :Initializer
8
+ end
9
+ end
10
+ end
@@ -0,0 +1,5 @@
1
+ # frozen_string_literal: true
2
+
3
+ module NfgUi
4
+ VERSION = '0.9.8.15'
5
+ end
data/lib/nfg_ui.rb ADDED
@@ -0,0 +1,174 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'nfg_ui/engine'
4
+
5
+ module NfgUi
6
+ require 'bootstrap'
7
+ require 'coffee-script'
8
+ require 'font-awesome-rails'
9
+ require 'haml'
10
+ require 'jquery-rails'
11
+ require 'sass-rails'
12
+ require 'select2-rails'
13
+ require 'inky'
14
+
15
+ DEFAULT_BOOTSTRAP_THEME = :primary
16
+
17
+ BOOTSTRAP_THEMES = %i[primary
18
+ secondary
19
+ success
20
+ danger
21
+ warning
22
+ info
23
+ light
24
+ dark].freeze
25
+
26
+ BOOTSTRAP_COMPONENT_NAMES = %i[alert
27
+ badge
28
+ breadcrumb
29
+ breadcrumb_item
30
+ button
31
+ button_group
32
+ button_toolbar
33
+ card
34
+ card_body
35
+ card_footer
36
+ card_header
37
+ card_image
38
+ card_image_overlay
39
+ carousel
40
+ carousel_caption
41
+ carousel_control
42
+ carousel_indicators
43
+ carousel_item
44
+ collapse
45
+ dropdown
46
+ dropdown_divider
47
+ dropdown_header
48
+ dropdown_item
49
+ dropdown_menu
50
+ dropdown_toggle
51
+ embed
52
+ form
53
+ input_group
54
+ jumbotron
55
+ list_group
56
+ list_group_item
57
+ media
58
+ media_body
59
+ media_object
60
+ modal
61
+ modal_body
62
+ modal_footer
63
+ modal_header
64
+ nav
65
+ nav_item
66
+ nav_link
67
+ navbar
68
+ navbar_brand
69
+ navbar_nav
70
+ navbar_text
71
+ navbar_toggler
72
+ page_item
73
+ pagination
74
+ popover
75
+ progress
76
+ tab_content
77
+ tab_pane
78
+ table].freeze
79
+
80
+ GROUPING_NAMES = %i[foundations
81
+ elements
82
+ patterns].freeze
83
+
84
+ FOUNDATION_COMPONENT_NAMES = %i[color
85
+ icon
86
+ image
87
+ input
88
+ grid
89
+ typeface].freeze
90
+
91
+ ELEMENT_COMPONENT_NAMES = %i[activity
92
+ alert
93
+ badge
94
+ breadcrumb
95
+ breadcrumb_item
96
+ button
97
+ card_body
98
+ card_footer
99
+ card_header
100
+ card_image
101
+ card_image_overlay
102
+ carousel_caption
103
+ carousel_control
104
+ carousel_indicators
105
+ carousel_item
106
+ chart
107
+ dropdown_divider
108
+ dropdown_header
109
+ dropdown_item
110
+ dropdown_toggle
111
+ embed
112
+ form_control
113
+ input_group
114
+ key
115
+ list_group_item
116
+ loader
117
+ media_body
118
+ media_object
119
+ modal_body
120
+ modal_footer
121
+ modal_header
122
+ nav
123
+ nav_item
124
+ nav_link
125
+ navbar_brand
126
+ navbar_text
127
+ navbar_toggler
128
+ page_item
129
+ popover
130
+ progress_bar
131
+ slat_action
132
+ slat_body
133
+ slat_item
134
+ stat
135
+ step
136
+ step_indicator
137
+ tab_pane
138
+ table
139
+ task].freeze
140
+
141
+ PATTERN_COMPONENT_NAMES = %i[activity_feed
142
+ button_group
143
+ button_toolbar
144
+ card
145
+ carousel
146
+ collapse
147
+ dropdown
148
+ dropdown_menu
149
+ empty_state
150
+ filter_bar
151
+ form_group
152
+ graph
153
+ jumbotron
154
+ list_group
155
+ media
156
+ modal
157
+ navbar
158
+ navbar_nav
159
+ page_header
160
+ pagination
161
+ progress
162
+ slat
163
+ slat_actions
164
+ slat_header
165
+ slat_list
166
+ slats
167
+ steps
168
+ tab_content
169
+ task_list
170
+ tile
171
+ tile_body
172
+ tile_header
173
+ tile_section].freeze
174
+ end
@@ -0,0 +1,53 @@
1
+ desc "Copies the files in nfg_ui's `public/nfg_ui` folder to your application's `public` folder."
2
+ Rake::Task['assets:precompile'].enhance do
3
+ Rake::Task['nfg_ui:copy_assets'].invoke
4
+ end
5
+
6
+ # Enhanced assets:precompile to ensure that the latest assets are copied over
7
+ namespace :nfg_ui do
8
+ task :copy_assets => :"assets:environment" do
9
+ puts 'rake nfg_ui:copy_assets has begun'
10
+ puts ''
11
+ asset_paths = Dir.glob(NfgUi::Engine.root.join('public', 'nfg_ui', '**', '*'))
12
+ asset_paths.each do |asset_path|
13
+ filename = File.basename(asset_path)
14
+ source_file = File.open(asset_path)
15
+ dest_file = File.join(Rails.root, 'public', filename)
16
+
17
+ # The file to be copied already exists. Defer to the host app
18
+ # and do not copy the file over.
19
+ if File.file?(dest_file)
20
+ puts 'File copy was unsuccessful'
21
+ puts "Reason: #{dest_file} already exists"
22
+ puts 'Source file:'
23
+ puts asset_path
24
+ puts ''
25
+
26
+ # The asset does not already exist!
27
+ else
28
+ # Copy the file over
29
+ FileUtils.copy_file source_file, dest_file, true
30
+
31
+ # The file was successfully copied
32
+ if File.file?(dest_file)
33
+ puts 'File copy was successful'
34
+ puts "Copied: #{asset_path} to #{dest_file}"
35
+ puts ''
36
+
37
+ # For reasons unknown, the file was not succesfully coppied
38
+ else
39
+ puts 'File copy was unsuccessful'
40
+ puts 'Reason: Unknown'
41
+ puts "Attempted command: `FileUtils.copy_file the_asset, dest_file_path, true`"
42
+ puts 'Source file:'
43
+ puts asset_path
44
+ puts 'Destination:'
45
+ puts Rails.root.join('public')
46
+ puts ''
47
+ end
48
+ end
49
+ end
50
+
51
+ puts 'rake nfg_ui:copy_assets has completed'
52
+ end
53
+ end