mvpkit 1.1.2 → 2.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (137) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +1 -24
  3. data/README.md +43 -48
  4. data/VERSION +1 -1
  5. data/bin/mvp +2 -2
  6. data/config/routes.rb +0 -4
  7. data/mvpkit.gemspec +57 -129
  8. data/package.json +3 -22
  9. data/project/.babelrc +23 -1
  10. data/project/.gitignore +2 -0
  11. data/project/.postcssrc.yml +4 -0
  12. data/project/Gemfile +21 -13
  13. data/project/Gemfile.lock +181 -153
  14. data/project/Procfile +1 -1
  15. data/project/README.md +2 -116
  16. data/project/app/assets/javascripts/application.js +0 -8
  17. data/project/app/assets/stylesheets/application.scss +9 -3
  18. data/project/app/assets/stylesheets/elements/alerts.scss +10 -0
  19. data/project/app/assets/stylesheets/elements/badges.scss +16 -0
  20. data/project/app/assets/stylesheets/elements/buttons.scss +107 -0
  21. data/project/app/assets/stylesheets/elements/cards.scss +68 -0
  22. data/project/app/assets/stylesheets/elements/drawer.scss +66 -0
  23. data/project/app/assets/stylesheets/elements/forms.scss +64 -0
  24. data/project/app/assets/stylesheets/elements/interstitial.scss +24 -0
  25. data/project/app/assets/stylesheets/elements/navs.scss +15 -0
  26. data/project/app/assets/stylesheets/elements/sidebar.scss +30 -0
  27. data/project/app/assets/stylesheets/elements/tables.scss +61 -0
  28. data/project/app/assets/stylesheets/elements/timeline.scss +38 -0
  29. data/project/app/assets/stylesheets/elements/typography.scss +80 -0
  30. data/project/app/assets/stylesheets/init/bootstrap.scss +53 -0
  31. data/project/app/assets/stylesheets/init/reset.scss +20 -0
  32. data/project/app/assets/stylesheets/init/variables.scss +40 -0
  33. data/project/app/assets/stylesheets/treatments/backgrounds.scss +23 -0
  34. data/project/app/assets/stylesheets/treatments/borders.scss +7 -0
  35. data/project/app/{webpack/stylesheets/skin → assets/stylesheets/treatments}/spacing.scss +4 -10
  36. data/{app/controllers/mvp → project/app/controllers}/analytics_controller.rb +0 -0
  37. data/{app/controllers/concerns/mvp → project/app/controllers/concerns}/analytics_concern.rb +0 -0
  38. data/{app/controllers/concerns/mvp → project/app/controllers/concerns}/seo_concern.rb +0 -0
  39. data/{app/controllers/concerns/mvp → project/app/controllers/concerns}/session_concern.rb +0 -0
  40. data/project/app/controllers/conversions_controller.rb +1 -2
  41. data/{app/controllers/mvp → project/app/controllers}/seo_controller.rb +0 -0
  42. data/project/app/engines/admin/app/views/layouts/admin/_header.html.erb +18 -18
  43. data/project/app/helpers/application_helper.rb +0 -14
  44. data/{app/assets/stylesheets/mvp/application.scss → project/app/javascript/components/.gitkeep} +0 -0
  45. data/project/app/javascript/components/conversion.jsx +73 -0
  46. data/project/app/javascript/packs/application.js +28 -0
  47. data/project/app/javascript/packs/server_rendering.js +5 -0
  48. data/project/app/models/conversion.rb +1 -1
  49. data/project/app/views/conversions/show.json.jbuilder +1 -0
  50. data/project/app/views/home/index.html.erb +22 -22
  51. data/project/app/views/layouts/_header.html.erb +35 -34
  52. data/{app/views/layouts/mvp → project/app/views/layouts}/_instrumentation.html.erb +0 -0
  53. data/{app/views/layouts/mvp → project/app/views/layouts}/_meta.html.erb +0 -0
  54. data/project/app/views/layouts/application.html.erb +31 -21
  55. data/project/bin/setup +1 -1
  56. data/project/bin/webpack +28 -0
  57. data/project/bin/webpack-dev-server +43 -0
  58. data/project/config/initializers/assets.rb +2 -0
  59. data/{config → project/config}/initializers/canonical_host.rb +0 -0
  60. data/{config → project/config}/initializers/cloudinary.rb +0 -0
  61. data/{config → project/config}/initializers/rollbar.rb +0 -0
  62. data/{config → project/config}/initializers/routing.rb +0 -0
  63. data/{config → project/config}/initializers/spoof_ip.rb +0 -0
  64. data/{config → project/config}/initializers/ssl.rb +0 -0
  65. data/project/config/routes.rb +5 -7
  66. data/project/config/webpack/configuration.js +35 -0
  67. data/project/config/webpack/development.js +32 -0
  68. data/project/config/webpack/loaders/assets.js +12 -0
  69. data/project/config/webpack/loaders/babel.js +5 -0
  70. data/project/config/webpack/loaders/coffee.js +4 -0
  71. data/project/config/webpack/loaders/erb.js +9 -0
  72. data/project/config/webpack/loaders/react.js +5 -0
  73. data/project/config/webpack/loaders/sass.js +15 -0
  74. data/project/config/webpack/production.js +35 -0
  75. data/project/config/webpack/shared.js +58 -0
  76. data/project/config/webpack/test.js +6 -0
  77. data/project/config/webpacker.yml +38 -0
  78. data/project/package-lock.json +250 -0
  79. data/project/package.json +37 -17
  80. data/project/yarn.lock +4538 -0
  81. metadata +56 -326
  82. data/app/assets/javascripts/mvp/application.js +0 -1
  83. data/app/controllers/mvp/styleguide_controller.rb +0 -23
  84. data/app/helpers/minimum_viable_product/body_helper.rb +0 -14
  85. data/app/helpers/minimum_viable_product/bootstrap_helper.rb +0 -38
  86. data/app/helpers/minimum_viable_product/styleguide_helper.rb +0 -4
  87. data/app/models/concerns/mvp/slugification.rb +0 -24
  88. data/app/views/layouts/mvp/application.html.erb +0 -19
  89. data/app/views/mvp/styleguide/_example.html.erb +0 -6
  90. data/app/views/mvp/styleguide/bootstrap.html.erb +0 -43
  91. data/app/views/mvp/styleguide/bootstrap/_buttons.html.erb +0 -191
  92. data/app/views/mvp/styleguide/bootstrap/_forms.html.erb +0 -192
  93. data/app/views/mvp/styleguide/bootstrap/_header.html.erb +0 -48
  94. data/app/views/mvp/styleguide/bootstrap/_panels.html.erb +0 -16
  95. data/app/views/mvp/styleguide/bootstrap/_tables.html.erb +0 -34
  96. data/app/views/mvp/styleguide/bootstrap/_typography.html.erb +0 -51
  97. data/app/views/mvp/styleguide/elements/_grouping.html.erb +0 -1
  98. data/app/views/mvp/styleguide/elements/partials/_row_groups_of.html.erb +0 -7
  99. data/app/views/mvp/styleguide/index.html.erb +0 -17
  100. data/app/views/mvp/styleguide/layouts/basic.html.erb +0 -4
  101. data/app/views/mvp/styleguide/layouts/carousel.html.erb +0 -120
  102. data/app/views/mvp/styleguide/layouts/cover.html.erb +0 -34
  103. data/config/initializers/assets.rb +0 -2
  104. data/config/initializers/geocoder.rb +0 -9
  105. data/project/app/assets/javascripts/pack-compiled.js +0 -37394
  106. data/project/app/assets/javascripts/pack-compiled.js.map +0 -1
  107. data/project/app/assets/javascripts/templates.js.erb +0 -14
  108. data/project/app/assets/stylesheets/pack-compiled.css +0 -33946
  109. data/project/app/assets/stylesheets/pack-compiled.css.map +0 -1
  110. data/project/app/controllers/examples_controller.rb +0 -2
  111. data/project/app/views/examples/index.html.erb +0 -1
  112. data/project/app/views/examples/mustache.html.erb +0 -40
  113. data/project/app/views/examples/mustache/template.mustache +0 -1
  114. data/project/app/views/home/conversion.html.erb +0 -12
  115. data/project/app/webpack/javascripts/behaviors/example.js +0 -21
  116. data/project/app/webpack/javascripts/controllers/home.js +0 -15
  117. data/project/app/webpack/javascripts/lib/analytics.js +0 -22
  118. data/project/app/webpack/javascripts/lib/clientsidevalidations.js +0 -3
  119. data/project/app/webpack/javascripts/lib/controllers.js +0 -28
  120. data/project/app/webpack/javascripts/lib/forms.js +0 -28
  121. data/project/app/webpack/javascripts/lib/selectize.js +0 -1
  122. data/project/app/webpack/javascripts/pack.js +0 -50
  123. data/project/app/webpack/stylesheets/config/variables.scss +0 -41
  124. data/project/app/webpack/stylesheets/init/reset.scss +0 -48
  125. data/project/app/webpack/stylesheets/layout/main.scss +0 -7
  126. data/project/app/webpack/stylesheets/pack.scss +0 -20
  127. data/project/app/webpack/stylesheets/skin/alerts.scss +0 -3
  128. data/project/app/webpack/stylesheets/skin/buttons.scss +0 -38
  129. data/project/app/webpack/stylesheets/skin/hero.scss +0 -45
  130. data/project/app/webpack/stylesheets/skin/images.scss +0 -13
  131. data/project/app/webpack/stylesheets/skin/progress.scss +0 -3
  132. data/project/app/webpack/stylesheets/skin/selectize.scss +0 -30
  133. data/project/app/webpack/stylesheets/skin/tables.scss +0 -24
  134. data/project/app/webpack/stylesheets/skin/treatments.scss +0 -3
  135. data/project/app/webpack/stylesheets/skin/turbolinks.scss +0 -4
  136. data/project/app/webpack/stylesheets/skin/typography.scss +0 -116
  137. data/project/webpack.config.js +0 -76
@@ -0,0 +1,24 @@
1
+ .interstitial {
2
+ @include media-breakpoint-up(xs) {
3
+ margin: 20px;
4
+ }
5
+
6
+ @include media-breakpoint-up(sm) {
7
+ max-width: 90%;
8
+ margin: auto;
9
+ }
10
+
11
+ @include media-breakpoint-up(md) {
12
+ max-width: 80%;
13
+ margin: auto;
14
+ }
15
+
16
+ @include media-breakpoint-up(lg) {
17
+ max-width: 65%;
18
+ margin: auto;
19
+ }
20
+
21
+ @include media-breakpoint-up(xl) {
22
+ max-width: 50%;
23
+ }
24
+ }
@@ -0,0 +1,15 @@
1
+ nav {
2
+ .navbar-brand {
3
+ margin: 0;
4
+ }
5
+
6
+ .nav-link {
7
+ position: relative;
8
+ top: 2px;
9
+ color: $color-grey;
10
+
11
+ &:hover {
12
+ color: $color-grey-dark;
13
+ }
14
+ }
15
+ }
@@ -0,0 +1,30 @@
1
+ .list-group.sidebar {
2
+ position: sticky;
3
+ top: 1em;
4
+ z-index: 1030;
5
+
6
+ .list-group-item {
7
+ color: $color-grey-dark;
8
+ border: none;
9
+ background: none;
10
+ font-size: 14px;
11
+ margin-bottom: 10px;
12
+
13
+ span {
14
+ position: relative;
15
+ top: 3px;
16
+ }
17
+
18
+ &.active {
19
+ color: $color-green;
20
+ border: $card-border-width solid $card-border-color;
21
+ background: #FFF;
22
+ @include border-radius($card-border-radius);
23
+ @extend .shadowed;
24
+ }
25
+
26
+ .badge {
27
+ background-color: $color-green;
28
+ }
29
+ }
30
+ }
@@ -0,0 +1,61 @@
1
+ .table {
2
+ > thead,
3
+ > tbody,
4
+ > tfoot {
5
+ tr {
6
+ td,th {
7
+ // line-height: 35px;
8
+ // border-top: 1px solid #edf0f3;
9
+ white-space: nowrap;
10
+
11
+ &:first-child { padding-left: 20px; }
12
+ &:last-child { padding-right: 20px; }
13
+ }
14
+
15
+ th:hover { background-color: transparent !important; }
16
+
17
+ // &:first-child td,th { border-top: 0; }
18
+ }
19
+ }
20
+
21
+ th {
22
+ color: $color-grey;
23
+
24
+ .sort_link {
25
+ text-transform: uppercase;
26
+ }
27
+
28
+ a {
29
+ color: $color-grey;
30
+ }
31
+ }
32
+
33
+ tr.selected {
34
+ background-color: $color-success-highlight;
35
+ }
36
+
37
+ &.table-hover {
38
+ tr:hover {
39
+ background-color: $color-grey-lightest !important;
40
+ cursor: pointer;
41
+
42
+ &.selected {
43
+ background-color: $color-success-highlight-hover !important;
44
+ }
45
+ }
46
+ }
47
+ }
48
+
49
+ .table.table-flush {
50
+ tr {
51
+ td, th {
52
+ &:first-child { padding-left: 0; }
53
+ }
54
+ }
55
+
56
+ tr {
57
+ td, th {
58
+ &:last-child { padding-right: 0; }
59
+ }
60
+ }
61
+ }
@@ -0,0 +1,38 @@
1
+ .timeline {
2
+ .timeline-activity {
3
+ @extend .card;
4
+ padding: 20px;
5
+ margin-bottom: 15px;
6
+
7
+ &.fade-out {
8
+ opacity: 0;
9
+ transition: opacity 0.3s linear;
10
+ }
11
+
12
+ .actions {
13
+ position: absolute;
14
+ right: 20px;
15
+ top: 20px;
16
+ }
17
+
18
+ .status {
19
+ position: absolute;
20
+ right: 20px;
21
+ top: 20px;
22
+ }
23
+
24
+ .icon {
25
+ position: absolute;
26
+ left: 20px;
27
+
28
+ .fa.fa-stack-1x {
29
+ font-size: 1.0rem;
30
+ }
31
+ }
32
+
33
+ .body {
34
+ margin-left: 45px;
35
+ padding-top: 10px;
36
+ }
37
+ }
38
+ }
@@ -0,0 +1,80 @@
1
+ html,
2
+ p,
3
+ button,
4
+ input,
5
+ optgroup,
6
+ select,
7
+ textarea {
8
+ font-family: 'Adelle-Sans', sans-serif;
9
+ font-size: 14px;
10
+ letter-spacing: 0.2px;
11
+ color: $color-black;
12
+ }
13
+
14
+ strong {
15
+ font-family: 'Adelle-Sans-Bold', sans-serif;
16
+ }
17
+
18
+ h1,h2,h3,h4,h5,h6 {
19
+ color: $color-black;
20
+ margin:0;
21
+ }
22
+
23
+ h1 {
24
+ font-size: 30px;
25
+ line-height: 1.6;
26
+ font-family: 'Adelle-Sans-Bold', sans-serif;
27
+ font-weight: bold;
28
+ }
29
+
30
+ h2 {
31
+ font-size: 26px;
32
+ line-height: 1.4;
33
+ }
34
+
35
+ h3 {
36
+ font-size: 22px;
37
+ }
38
+
39
+ h4 {
40
+ font-size: 20px;
41
+ }
42
+
43
+ h5 {
44
+ font-size: 16px;
45
+ }
46
+
47
+ h6 {
48
+ font-size: 12px;
49
+ font-weight: bold;
50
+ }
51
+
52
+ @each $name, $val in $colors {
53
+ .text-#{"" + $name} {
54
+ color: $val !important;
55
+ }
56
+ }
57
+
58
+ @each $name, $val in $grey-colors {
59
+ .text-#{"" + $name} {
60
+ color: $val !important;
61
+ }
62
+ }
63
+
64
+ .font-weight-bold {
65
+ font-family: 'Adelle-Sans-Bold', sans-serif;
66
+ }
67
+
68
+ @each $breakpoint in map-keys($grid-breakpoints) {
69
+ @include media-breakpoint-up($breakpoint) {
70
+ .text-left-#{$breakpoint}-up { text-align: left; }
71
+ .text-right-#{$breakpoint}-up { text-align: right; }
72
+ .text-center-#{$breakpoint}-up { text-align: center; }
73
+ }
74
+
75
+ @include media-breakpoint-down($breakpoint) {
76
+ .text-left-#{$breakpoint}-down { text-align: left; }
77
+ .text-right-#{$breakpoint}-down { text-align: right; }
78
+ .text-center-#{$breakpoint}-down { text-align: center; }
79
+ }
80
+ }
@@ -0,0 +1,53 @@
1
+ $brand-primary: $color-blue !default;
2
+ $brand-success: $color-green !default;
3
+ $brand-info: $color-blue !default;
4
+ $brand-warning: $color-yellow !default;
5
+ $brand-danger: $color-red !default;
6
+
7
+ $border-radius: 0px;
8
+ $border-radius-lg: 0px;
9
+ $border-radius-sm: 0px;
10
+
11
+ $brand-primary: $color-green;
12
+
13
+ $font-family-sans-serif: 'Adelle-Sans', sans-serif;
14
+
15
+ $alert-success-bg: #ddf3e4;
16
+ $alert-success-border: $color-blue;
17
+ $alert-success-text: $color-black;
18
+ $alert-warning-bg: #ffefc9;
19
+ $alert-warning-border: $color-yellow;
20
+ $alert-warning-text: $color-black;
21
+ $alert-danger-bg: #fdd3e0;
22
+ $alert-danger-border: $color-red;
23
+ $alert-danger-text: $color-black;
24
+ $alert-info-bg: #d9edf7;
25
+ $alert-info-border: $color-blue;
26
+ $alert-info-text: $color-black;
27
+
28
+ $input-btn-border-width: 1px;
29
+ $input-border-color: $color-grey-light !default;
30
+ $input-border-radius: 3px;
31
+ $input-color-placeholder: $color-grey !default;
32
+
33
+ $modal-backdrop-bg: rgba(106, 116, 135, 0.8);
34
+ $modal-backdrop-opacity: 1.0;
35
+
36
+ $state-success-text: $color-green !default;
37
+ $state-success-bg: #dff0d8 !default;
38
+ $state-success-border: darken(adjust-hue($state-success-bg, -10), 5%) !default;
39
+
40
+ $state-info-text: $color-blue !default;
41
+ $state-info-bg: #d9edf7 !default;
42
+ $state-info-border: darken(adjust-hue($state-info-bg, -10), 7%) !default;
43
+
44
+ $state-warning-text: $color-yellow !default;
45
+ $state-warning-bg: #fcf8e3 !default;
46
+ $state-warning-border: darken(adjust-hue($state-warning-bg, -10), 5%) !default;
47
+
48
+ $state-danger-text: $color-red !default;
49
+ $state-danger-bg: #f2dede !default;
50
+ $state-danger-border: darken(adjust-hue($state-danger-bg, -10), 5%) !default;
51
+
52
+ $table-cell-padding: 15px 10px 10px 10px;
53
+ $table-sm-cell-padding: 0;
@@ -0,0 +1,20 @@
1
+ // Get rid of outlines
2
+ * {
3
+ outline: none !important;
4
+ }
5
+
6
+ html, body, div, span, applet, object, iframe,
7
+ h1, h2, h3, h4, h5, h6, p, blockquote, pre,
8
+ a, abbr, acronym, address, big, cite, code,
9
+ del, dfn, em, img, ins, kbd, q, s, samp,
10
+ small, strike, strong, sub, sup, tt, var,
11
+ b, u, i, center,
12
+ dl, dt, dd, ol, ul, li,
13
+ fieldset, form, label, legend,
14
+ table, caption, tbody, tfoot, thead, tr, th, td,
15
+ article, aside, canvas, details, embed,
16
+ figure, figcaption, footer, header, hgroup,
17
+ menu, nav, output, ruby, section, summary,
18
+ time, mark, audio, video, input, textarea {
19
+ margin: 0;
20
+ }
@@ -0,0 +1,40 @@
1
+ // Courtesy of https://www.dtelepathy.com/blog/inspiration/beautiful-color-palettes-for-your-next-web-project
2
+ // #45 - Gravual
3
+
4
+ $color-blue: #A2D7D8;
5
+ $color-green: #BFE1BF;
6
+ $color-yellow: #FCD059;
7
+ $color-red: #DE5842;
8
+
9
+ $color-black: #000;
10
+ $color-grey: #EDEDEA;
11
+ $color-grey-lightest: lighten($color-grey, 30%);
12
+ $color-grey-light: lighten($color-grey, 5%);
13
+ $color-grey-dark: darken($color-grey, 45%);
14
+ $color-grey-darkest: darken($color-grey, 60%);
15
+
16
+ $color-success-highlight: lighten($color-green, 57%);
17
+ $color-success-highlight-hover: lighten($color-green, 55%);
18
+
19
+ $colors: (
20
+ green: $color-green,
21
+ red: $color-red,
22
+ blue: $color-blue,
23
+ yellow: $color-yellow,
24
+ );
25
+
26
+ $grey-colors: (
27
+ black: $color-black,
28
+ grey-darkest: $color-grey-darkest,
29
+ grey-dark: $color-grey-dark,
30
+ grey: $color-grey,
31
+ grey-light: $color-grey-light,
32
+ grey-lightest: $color-grey-lightest
33
+ );
34
+
35
+ $gray-base: $color-grey !default;
36
+ $gray-darker: $color-grey-darkest !default; // #222
37
+ $gray-dark: $color-grey-dark !default; // #333
38
+ $gray: $color-grey !default; // #555
39
+ $gray-light: $color-grey-light !default; // #777
40
+ $gray-lighter: $color-grey-lightest !default; // #eee
@@ -0,0 +1,23 @@
1
+ body {
2
+ background-color: #FFF;
3
+ }
4
+
5
+ .bg-white {
6
+ background-color: #FFF !important;
7
+ }
8
+
9
+ @each $name, $val in $colors {
10
+ .bg-#{"" + $name} {
11
+ background-color: $val !important;
12
+ }
13
+ }
14
+
15
+ @each $name, $val in $grey-colors {
16
+ .bg-#{"" + $name} {
17
+ background-color: $val !important;
18
+ }
19
+ }
20
+
21
+ .shadowed {
22
+ box-shadow: 0 1px 7px 0 rgba(180, 189, 195, 0.27);
23
+ }
@@ -0,0 +1,7 @@
1
+ .bt { border-top: 1px solid $gray-light !important; }
2
+ .bb { border-bottom: solid $gray-light 1px !important; }
3
+ .bl { border-left: 1px solid $gray-light !important; }
4
+ .br { border-right: 1px solid $gray-light !important; }
5
+ .b { border: 1px solid $gray-light !important; }
6
+
7
+ .no-border { border: none !important; }
@@ -1,13 +1,3 @@
1
- @each $breakpoint in map-keys($grid-breakpoints) {
2
- @include media-breakpoint-up($breakpoint) {
3
- .block-#{$breakpoint}-up { display: block; width: 100% }
4
- }
5
-
6
- @include media-breakpoint-down($breakpoint) {
7
- .block-#{$breakpoint}-down { display: block; width: 100% }
8
- }
9
- }
10
-
11
1
  @for $i from 0 through 100 {
12
2
  .mt#{$i} { margin-top: #{$i}px !important; }
13
3
  .mb#{$i} { margin-bottom: #{$i}px !important; }
@@ -51,3 +41,7 @@
51
41
  }
52
42
  }
53
43
  }
44
+
45
+ .vh100 {
46
+ height: 100vh;
47
+ }
@@ -6,10 +6,9 @@ class ConversionsController < ApplicationController
6
6
 
7
7
  respond_to do |format|
8
8
  if @conversion.save
9
- sign_in(@conversion)
10
9
  track! 'Conversion', {email: @conversion.email}
11
10
  slack! "Conversion: #{@conversion.email}"
12
- format.json { render json: @conversion, status: :ok }
11
+ format.json { render :show }
13
12
  else
14
13
  format.json { render json: @conversion.errors, status: :unprocessable_entity }
15
14
  end