mvpkit 2.0.0 → 2.0.1

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: efb3bd7d5c2433bbcb2b04a9f01b4c7eae68ec25
4
- data.tar.gz: a438288232925292eae8081d6a1c5a5ad4200d47
3
+ metadata.gz: 43a8f1a7d4f294aef3a08e9d1e9317011d38a960
4
+ data.tar.gz: 5f3633b797df92142c78c90528576fd3323a662f
5
5
  SHA512:
6
- metadata.gz: 3e86972e2bdb44fe843ded17e8a3a5bd3cb51e9fc36e1936c3ce6ddf22905d70d4b59c6d94f4f9ebcf055586491f09f7aa68c8fe5ac674df48b1f7235cda6626
7
- data.tar.gz: 79d4083e27af2f062a85ff68bce876e22275571b3fd35147540c7ebfd49649b93f7077f32c83a73d38d124915254e87653cf52ffe9e75b9903f53d8387e1454d
6
+ metadata.gz: af4fd888a04f26a11994f67f114583dc520a1bbf5ec3c2f4766b64c595e471b916171f31007339aeeea3efdf4464516c909d1e428de71ca1537e32fc938c07b1
7
+ data.tar.gz: 3d22f8655e398b327b5a8d35f90235db4ae0820671b5fba481a1815e4a8aacbe3e8628589a60d5cd578b0ef43f79ca6e48593a6f7f2405a16ce047284c8355ec
data/VERSION CHANGED
@@ -1 +1 @@
1
- 2.0.0
1
+ 2.0.1
data/mvpkit.gemspec CHANGED
@@ -2,16 +2,16 @@
2
2
  # DO NOT EDIT THIS FILE DIRECTLY
3
3
  # Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
4
4
  # -*- encoding: utf-8 -*-
5
- # stub: mvpkit 2.0.0 ruby lib
5
+ # stub: mvpkit 2.0.1 ruby lib
6
6
 
7
7
  Gem::Specification.new do |s|
8
8
  s.name = "mvpkit".freeze
9
- s.version = "2.0.0"
9
+ s.version = "2.0.1"
10
10
 
11
11
  s.required_rubygems_version = Gem::Requirement.new(">= 0".freeze) if s.respond_to? :required_rubygems_version=
12
12
  s.require_paths = ["lib".freeze]
13
13
  s.authors = ["Ian Hunter".freeze]
14
- s.date = "2017-09-10"
14
+ s.date = "2017-09-11"
15
15
  s.description = "Built for Developers. Ideal for MVPs, product ideation and validation.".freeze
16
16
  s.email = "ianhunter@gmail.com".freeze
17
17
  s.executables = ["mvp".freeze]
@@ -27,9 +27,6 @@ Gem::Specification.new do |s|
27
27
  "README.md",
28
28
  "Rakefile",
29
29
  "VERSION",
30
- "assets/js/application.js",
31
- "assets/js/init/controllers.js",
32
- "assets/js/init/forms.js",
33
30
  "bin/mvp",
34
31
  "bin/rails",
35
32
  "config/initializers/iteration.rb",
@@ -69,6 +66,8 @@ Gem::Specification.new do |s|
69
66
  "project/app/assets/stylesheets/elements/timeline.scss",
70
67
  "project/app/assets/stylesheets/elements/typography.scss",
71
68
  "project/app/assets/stylesheets/init/bootstrap.scss",
69
+ "project/app/assets/stylesheets/init/font-awesome.scss",
70
+ "project/app/assets/stylesheets/init/open-iconic.scss",
72
71
  "project/app/assets/stylesheets/init/reset.scss",
73
72
  "project/app/assets/stylesheets/init/variables.scss",
74
73
  "project/app/assets/stylesheets/treatments/backgrounds.scss",
@@ -128,6 +127,7 @@ Gem::Specification.new do |s|
128
127
  "project/app/helpers/application_helper.rb",
129
128
  "project/app/javascript/components/.gitkeep",
130
129
  "project/app/javascript/components/conversion.jsx",
130
+ "project/app/javascript/components/examples/reactstrap.jsx",
131
131
  "project/app/javascript/packs/application.js",
132
132
  "project/app/javascript/packs/server_rendering.js",
133
133
  "project/app/mailers/application_mailer.rb",
data/project/Gemfile CHANGED
@@ -22,6 +22,7 @@ gem "geocoder"
22
22
  gem "hashie"
23
23
  gem 'identicon'
24
24
  gem 'jbuilder', '~> 2.5'
25
+ gem 'kaminari'
25
26
  gem 'mustache'
26
27
  gem 'mvpkit', '~> 1.1.1'#, path: '../../mvpkit'
27
28
  gem 'pg'
data/project/Gemfile.lock CHANGED
@@ -280,6 +280,18 @@ GEM
280
280
  js_regex (1.2.3)
281
281
  regexp_parser (>= 0.3.6, <= 0.5.0)
282
282
  json (1.8.6)
283
+ kaminari (1.0.1)
284
+ activesupport (>= 4.1.0)
285
+ kaminari-actionview (= 1.0.1)
286
+ kaminari-activerecord (= 1.0.1)
287
+ kaminari-core (= 1.0.1)
288
+ kaminari-actionview (1.0.1)
289
+ actionview
290
+ kaminari-core (= 1.0.1)
291
+ kaminari-activerecord (1.0.1)
292
+ activerecord
293
+ kaminari-core (= 1.0.1)
294
+ kaminari-core (1.0.1)
283
295
  launchy (2.4.3)
284
296
  addressable (~> 2.3)
285
297
  letter_opener (1.4.1)
@@ -491,6 +503,7 @@ DEPENDENCIES
491
503
  hashie
492
504
  identicon
493
505
  jbuilder (~> 2.5)
506
+ kaminari
494
507
  letter_opener
495
508
  listen (~> 3.0.5)
496
509
  mustache
@@ -1,9 +1,9 @@
1
1
  @import "init/variables";
2
2
 
3
- @import 'font-awesome/scss/font-awesome';
3
+ // Fonts
4
+ @import "init/open-iconic";
5
+ @import "init/font-awesome";
4
6
  @import "init/bootstrap";
5
- @import "bootstrap/scss/bootstrap";
6
-
7
7
  @import "init/reset";
8
8
 
9
9
  @import "elements/*";
@@ -1,48 +1,19 @@
1
1
  @import 'init/variables';
2
2
 
3
- .btn {
4
- box-shadow: 0 1px 2px 0 rgba(106, 116, 135, 0.1);
5
- padding: 8px 15px 5px 15px;
3
+ .btn-group {
4
+ .btn {
5
+ // padding: 16px;
6
+ }
7
+ }
6
8
 
9
+ .btn {
7
10
  &:hover {
8
11
  cursor: pointer;
9
12
  }
10
13
 
11
- &.btn-lg {
12
- padding: 9px 15px 5px 15px
13
- }
14
-
15
- &.btn-sm {
16
- padding: 5px 5px 3px 5px
17
- }
18
-
19
- &.btn-wite {
20
- padding-left: 30px;
21
- padding-right: 30px;
22
- }
23
-
24
- &.btn-secondary {
25
- border: solid 1px $color-grey;
26
- color: $color-grey-dark;
27
- background-color: $color-grey-lightest;
28
-
29
- .fa {
30
- color: $color-grey;
31
- }
32
-
14
+ &.btn-outline-light {
33
15
  &:hover {
34
- background-color: darken($color-grey-lightest, 5%);
35
- }
36
-
37
- &:focus,
38
- &:active {
39
- outline: none !important;
40
- box-shadow: 0 1px 2px 0 rgba(106, 116, 135, 0.1);
41
- }
42
-
43
- &.selected {
44
- color: $color-grey-lightest;
45
- background-color: $color-grey;
16
+ color: $color-black;
46
17
  }
47
18
  }
48
19
 
@@ -62,8 +33,9 @@
62
33
 
63
34
  @each $name, $val in $colors {
64
35
  &.btn-#{"" + $name} {
65
- @include button-variant(#FFF, $val, $color-grey-light);
66
- .fa { color: #fff; }
36
+ color: $color-white !important;
37
+ @include button-variant($val, $val);
38
+ .fa { color: $color-white; }
67
39
  }
68
40
 
69
41
  &.btn-outline-#{"" + $name} {
@@ -99,9 +71,3 @@
99
71
  }
100
72
  }
101
73
  }
102
-
103
- .btn-group {
104
- .btn {
105
- padding: 8px 10px 5px 10px;
106
- }
107
- }
@@ -1,8 +1,3 @@
1
- .form-group {
2
- margin-bottom: 0;
3
- position: relative;
4
- }
5
-
6
1
  .form-control {
7
2
  padding: 8px 10px 5px 10px;
8
3
  box-shadow: 0 1px 2px 0 rgba(106, 116, 135, 0.1);
@@ -18,7 +18,7 @@
18
18
  &.active {
19
19
  color: $color-green;
20
20
  border: $card-border-width solid $card-border-color;
21
- background: #FFF;
21
+ background: $color-white;
22
22
  @include border-radius($card-border-radius);
23
23
  @extend .shadowed;
24
24
  }
@@ -51,3 +51,5 @@ $state-danger-border: darken(adjust-hue($state-danger-bg, -10), 5%) !
51
51
 
52
52
  $table-cell-padding: 15px 10px 10px 10px;
53
53
  $table-sm-cell-padding: 0;
54
+
55
+ @import "bootstrap/scss/bootstrap";
@@ -0,0 +1,2 @@
1
+ $fa-font-path: 'font-awesome/font/fonts/';
2
+ @import 'font-awesome/scss/font-awesome';
@@ -0,0 +1,2 @@
1
+ $icon-font-path: 'open-iconic/font/fonts/';
2
+ @import 'open-iconic/font/css/open-iconic-bootstrap.scss';
@@ -6,6 +6,7 @@ $color-green: #BFE1BF;
6
6
  $color-yellow: #FCD059;
7
7
  $color-red: #DE5842;
8
8
 
9
+ $color-white: #FFF;
9
10
  $color-black: #000;
10
11
  $color-grey: #EDEDEA;
11
12
  $color-grey-lightest: lighten($color-grey, 30%);
@@ -1,9 +1,9 @@
1
1
  body {
2
- background-color: #FFF;
2
+ background-color: $color-white;
3
3
  }
4
4
 
5
5
  .bg-white {
6
- background-color: #FFF !important;
6
+ background-color: $color-white !important;
7
7
  }
8
8
 
9
9
  @each $name, $val in $colors {
@@ -5,7 +5,7 @@ class ApplicationController < ActionController::Base
5
5
 
6
6
  helper MVP::Engine.helpers
7
7
 
8
- before_action :authenticate_with_http_basic if ENV['HTTP_BASIC_AUTH_USER']
8
+ before_action :http_basic_auth if ENV['HTTP_BASIC_AUTH_USER']
9
9
  # before_action :authenticate_user!
10
10
  before_action :configure_permitted_parameters, if: :devise_controller?
11
11
 
@@ -28,7 +28,7 @@ class ApplicationController < ActionController::Base
28
28
 
29
29
  private
30
30
 
31
- def authenticate_with_http_basic
31
+ def http_basic_auth
32
32
  authenticate_or_request_with_http_basic do |username, password|
33
33
  username == ENV['HTTP_BASIC_AUTH_USER'] && password == ENV['HTTP_BASIC_AUTH_PASSWORD']
34
34
  end
@@ -1,5 +1,6 @@
1
1
  module Admin
2
2
  class ApplicationController < ::ApplicationController
3
3
  protect_from_forgery with: :exception
4
+ before_action :http_basic_auth if ENV['HTTP_BASIC_AUTH_USER']
4
5
  end
5
6
  end
@@ -0,0 +1,79 @@
1
+ import React from 'react';
2
+ import { Button, Form, FormGroup, Label, Input, FormText } from 'reactstrap';
3
+
4
+ export default class ReactstrapExamples extends React.Component {
5
+ render() {
6
+ return (
7
+ <Form>
8
+ <FormGroup>
9
+ <Label for="exampleEmail">Email</Label>
10
+ <Input type="email" name="email" id="exampleEmail" placeholder="with a placeholder" />
11
+ </FormGroup>
12
+ <FormGroup>
13
+ <Label for="examplePassword">Password</Label>
14
+ <Input type="password" name="password" id="examplePassword" placeholder="password placeholder" />
15
+ </FormGroup>
16
+ <FormGroup>
17
+ <Label for="exampleSelect">Select</Label>
18
+ <Input type="select" name="select" id="exampleSelect">
19
+ <option>1</option>
20
+ <option>2</option>
21
+ <option>3</option>
22
+ <option>4</option>
23
+ <option>5</option>
24
+ </Input>
25
+ </FormGroup>
26
+ <FormGroup>
27
+ <Label for="exampleSelectMulti">Select Multiple</Label>
28
+ <Input type="select" name="selectMulti" id="exampleSelectMulti" multiple>
29
+ <option>1</option>
30
+ <option>2</option>
31
+ <option>3</option>
32
+ <option>4</option>
33
+ <option>5</option>
34
+ </Input>
35
+ </FormGroup>
36
+ <FormGroup>
37
+ <Label for="exampleText">Text Area</Label>
38
+ <Input type="textarea" name="text" id="exampleText" />
39
+ </FormGroup>
40
+ <FormGroup>
41
+ <Label for="exampleFile">File</Label>
42
+ <Input type="file" name="file" id="exampleFile" />
43
+ <FormText color="muted">
44
+ This is some placeholder block-level help text for the above input.
45
+ It's a bit lighter and easily wraps to a new line.
46
+ </FormText>
47
+ </FormGroup>
48
+ <FormGroup tag="fieldset">
49
+ <legend>Radio Buttons</legend>
50
+ <FormGroup check>
51
+ <Label check>
52
+ <Input type="radio" name="radio1" />{' '}
53
+ Option one is this and that—be sure to include why it's great
54
+ </Label>
55
+ </FormGroup>
56
+ <FormGroup check>
57
+ <Label check>
58
+ <Input type="radio" name="radio1" />{' '}
59
+ Option two can be something else and selecting it will deselect option one
60
+ </Label>
61
+ </FormGroup>
62
+ <FormGroup check disabled>
63
+ <Label check>
64
+ <Input type="radio" name="radio1" disabled />{' '}
65
+ Option three is disabled
66
+ </Label>
67
+ </FormGroup>
68
+ </FormGroup>
69
+ <FormGroup check>
70
+ <Label check>
71
+ <Input type="checkbox" />{' '}
72
+ Check me out
73
+ </Label>
74
+ </FormGroup>
75
+ <Button>Submit</Button>
76
+ </Form>
77
+ );
78
+ }
79
+ }
@@ -12,17 +12,18 @@ var componentRequireContext = require.context("components", true)
12
12
  var ReactRailsUJS = require("react_ujs")
13
13
  ReactRailsUJS.useContext(componentRequireContext)
14
14
 
15
- window.Tether = require('tether');
16
- window.Popper = require('popper.js').default
17
- window.jQuery = require('jquery')
18
- window.jQueryUJS = require('jquery-ujs');
19
- window.$ = window.jQuery;
15
+ window.Tether = require('tether');
16
+ window.Popper = require('popper.js').default
17
+ window.jQuery = require('jquery')
18
+ window.jQueryUJS = require('jquery-ujs');
19
+ window.$ = window.jQuery;
20
20
 
21
- window.is = require('is_js');
22
- window._ = require('lodash');
21
+ window.is = require('is_js');
22
+ window._ = require('lodash');
23
23
  _.mixin(require('lodash-inflection'));
24
24
 
25
- window.Moment = require('moment');
26
- window.bs = require('bootstrap');
25
+ window.Moment = require('moment');
26
+ window.bs = require('bootstrap');
27
27
 
28
- window.Conversion = require('components/conversion');
28
+ window.ReactstrapExamples = require('components/examples/reactstrap');
29
+ window.Conversion = require('components/conversion');
@@ -10,10 +10,11 @@
10
10
  <h2 class="mb20">Quick Tour</h2>
11
11
 
12
12
  <div class="mb50">
13
- <p class="mb20">You've got <a href="https://getbootstrap.com/docs/4.0/getting-started/introduction/">Bootstrap 4</a> ready to go.</p>
13
+ <h4 class="mb10">Bootstrap 4</h4>
14
+ <p class="mb20">You've got <a href="https://getbootstrap.com/docs/4.0/getting-started/introduction/" target="_blank">Bootstrap 4</a> right out of the box.</p>
14
15
 
15
16
  <div class="row">
16
- <% ['primary','secondary','success','warning','danger'].each do |color| %>
17
+ <% ['primary','secondary','success','warning','danger','green','red','blue','yellow'].each do |color| %>
17
18
  <div class="col-sm-4 mb20">
18
19
  <a href="#" class="btn btn-<%= color %> btn-block">.btn-<%= color %></a>
19
20
  </div>
@@ -21,6 +22,77 @@
21
22
  </div>
22
23
  </div>
23
24
 
25
+ <div class="mb50">
26
+ <h4 class="mb10">Reactstrap</h4>
27
+ <p class="mb20">Inside React components you have the Reactstrap library <a href="https://reactstrap.github.io/components/" target="_blank">Bootstrap 4</a> right out of the box.</p>
28
+
29
+ <%= react_component 'examples/reactstrap' %>
30
+ </div>
31
+
32
+ <div class="mb50">
33
+ <h4 class="mb20">Icons</h4>
34
+ <p class="mb20">Font-Awesome (<a href="http://fontawesome.io/icons/" target="_blank">icons</a>)</p>
35
+ <div class="mb20">
36
+ <% ['address-book','address-book-o','address-card','address-card-o','bandcamp','bath','bathtub (alias)','drivers-license (alias)','drivers-license-o (alias)','eercast','envelope-open','envelope-open-o','etsy','free-code-camp','grav','handshake-o','id-badge','id-card','id-card-o','imdb','linode','meetup','microchip','podcast','quora','ravelry','s15 (alias)','shower','snowflake-o','superpowers','telegram','thermometer (alias)','thermometer-0 (alias)','thermometer-1 (alias)','thermometer-2 (alias)','thermometer-3 (alias)','thermometer-4 (alias)','thermometer-empty','thermometer-full','thermometer-half','thermometer-quarter','thermometer-three-quarters','times-rectangle (alias)','times-rectangle-o (alias)','user-circle','user-circle-o','user-o','vcard (alias)','vcard-o (alias)','window-close','window-close-o','window-maximize','window-minimize','window-restore','wpexplorer','address-book','address-book-o','address-card','address-card-o','adjust','american-sign-language-interpreting','anchor','archive','area-chart','arrows','arrows-h','arrows-v','asl-interpreting (alias)','assistive-listening-systems','asterisk','at','audio-description','automobile (alias)','balance-scale','ban','bank (alias)','bar-chart','bar-chart-o (alias)','barcode','bars','bath','bathtub (alias)','battery (alias)','battery-0 (alias)','battery-1 (alias)','battery-2 (alias)','battery-3 (alias)','battery-4 (alias)','battery-empty','battery-full','battery-half','battery-quarter','battery-three-quarters','bed','beer','bell','bell-o','bell-slash','bell-slash-o','bicycle','binoculars','birthday-cake','blind','bluetooth','bluetooth-b','bolt','bomb','book','bookmark','bookmark-o','braille','briefcase','bug','building','building-o','bullhorn','bullseye','bus','cab (alias)','calculator','calendar','calendar-check-o','calendar-minus-o','calendar-o','calendar-plus-o','calendar-times-o','camera','camera-retro','car','caret-square-o-down','caret-square-o-left','caret-square-o-right','caret-square-o-up','cart-arrow-down','cart-plus','cc','certificate','check','check-circle','check-circle-o','check-square','check-square-o','child','circle','circle-o','circle-o-notch','circle-thin','clock-o','clone','close (alias)','cloud','cloud-download','cloud-upload','code','code-fork','coffee','cog','cogs','comment','comment-o','commenting','commenting-o','comments','comments-o','compass','copyright','creative-commons','credit-card','credit-card-alt','crop','crosshairs','cube','cubes','cutlery','dashboard (alias)','database','deaf','deafness (alias)','desktop','diamond','dot-circle-o','download','drivers-license (alias)','drivers-license-o (alias)','edit (alias)','ellipsis-h','ellipsis-v','envelope','envelope-o','envelope-open','envelope-open-o','envelope-square','eraser','exchange','exclamation','exclamation-circle','exclamation-triangle','external-link','external-link-square','eye','eye-slash','eyedropper','fax','feed (alias)','female','fighter-jet','file-archive-o','file-audio-o','file-code-o','file-excel-o','file-image-o','file-movie-o (alias)','file-pdf-o','file-photo-o (alias)','file-picture-o (alias)','file-powerpoint-o','file-sound-o (alias)','file-video-o','file-word-o','file-zip-o (alias)','film','filter','fire','fire-extinguisher','flag','flag-checkered','flag-o','flash (alias)','flask','folder','folder-o','folder-open','folder-open-o','frown-o','futbol-o','gamepad','gavel','gear (alias)','gears (alias)','gift','glass','globe','graduation-cap','group (alias)','hand-grab-o (alias)','hand-lizard-o','hand-paper-o','hand-peace-o','hand-pointer-o','hand-rock-o','hand-scissors-o','hand-spock-o','hand-stop-o (alias)','handshake-o','hard-of-hearing (alias)','hashtag','hdd-o','headphones','heart','heart-o','heartbeat','history','home','hotel (alias)','hourglass','hourglass-1 (alias)','hourglass-2 (alias)','hourglass-3 (alias)','hourglass-end','hourglass-half','hourglass-o','hourglass-start','i-cursor','id-badge','id-card','id-card-o','image (alias)','inbox','industry','info','info-circle','institution (alias)','key','keyboard-o','language','laptop','leaf','legal (alias)','lemon-o','level-down','level-up','life-bouy (alias)','life-buoy (alias)','life-ring','life-saver (alias)','lightbulb-o','line-chart','location-arrow','lock','low-vision','magic','magnet','mail-forward (alias)','mail-reply (alias)','mail-reply-all (alias)','male','map','map-marker','map-o','map-pin','map-signs','meh-o','microchip','microphone','microphone-slash','minus','minus-circle','minus-square','minus-square-o','mobile','mobile-phone (alias)','money','moon-o','mortar-board (alias)','motorcycle','mouse-pointer','music','navicon (alias)','newspaper-o','object-group','object-ungroup','paint-brush','paper-plane','paper-plane-o','paw','pencil','pencil-square','pencil-square-o','percent','phone','phone-square','photo (alias)','picture-o','pie-chart','plane','plug','plus','plus-circle','plus-square','plus-square-o','podcast','power-off','print','puzzle-piece','qrcode','question','question-circle','question-circle-o','quote-left','quote-right','random','recycle','refresh','registered','remove (alias)','reorder (alias)','reply','reply-all','retweet','road','rocket','rss','rss-square','s15 (alias)','search','search-minus','search-plus','send (alias)','send-o (alias)','server','share','share-alt','share-alt-square','share-square','share-square-o','shield','ship','shopping-bag','shopping-basket','shopping-cart','shower','sign-in','sign-language','sign-out','signal','signing (alias)','sitemap','sliders','smile-o','snowflake-o','soccer-ball-o (alias)','sort','sort-alpha-asc','sort-alpha-desc','sort-amount-asc','sort-amount-desc','sort-asc','sort-desc','sort-down (alias)','sort-numeric-asc','sort-numeric-desc','sort-up (alias)','space-shuttle','spinner','spoon','square','square-o','star','star-half','star-half-empty (alias)','star-half-full (alias)','star-half-o','star-o','sticky-note','sticky-note-o','street-view','suitcase','sun-o','support (alias)','tablet','tachometer','tag','tags','tasks','taxi','television','terminal','thermometer (alias)','thermometer-0 (alias)','thermometer-1 (alias)','thermometer-2 (alias)','thermometer-3 (alias)','thermometer-4 (alias)','thermometer-empty','thermometer-full','thermometer-half','thermometer-quarter','thermometer-three-quarters','thumb-tack','thumbs-down','thumbs-o-down','thumbs-o-up','thumbs-up','ticket','times','times-circle','times-circle-o','times-rectangle (alias)','times-rectangle-o (alias)','tint','toggle-down (alias)','toggle-left (alias)','toggle-off','toggle-on','toggle-right (alias)','toggle-up (alias)','trademark','trash','trash-o','tree','trophy','truck','tty','tv (alias)','umbrella','universal-access','university','unlock','unlock-alt','unsorted (alias)','upload','user','user-circle','user-circle-o','user-o','user-plus','user-secret','user-times','users','vcard (alias)','vcard-o (alias)','video-camera','volume-control-phone','volume-down','volume-off','volume-up','warning (alias)','wheelchair','wheelchair-alt','wifi','window-close','window-close-o','window-maximize','window-minimize','window-restore','wrench'].each do |icon| %>
37
+ <i class="fa fa-<%= icon %>"></i>
38
+ <% end %>
39
+ </div>
40
+
41
+ <div class="mb20">
42
+ <span><i class="fa fa-spinner fa-pulse fa-1x fa-fw"></i> spinning icons too ...</span>
43
+ </div>
44
+
45
+ <p class="mb20">Open Iconic (<a href="https://useiconic.com/open/" target="_blank">icons</a>)</p>
46
+ <div class="mb20">
47
+ <% icons = [ "account-login", "account-logout", "action-redo", "action-undo",
48
+ "align-center", "align-left", "align-right", "aperture", "arrow-bottom",
49
+ "arrow-circle-bottom", "arrow-circle-left", "arrow-circle-right",
50
+ "arrow-circle-top", "arrow-left", "arrow-right", "arrow-thick-bottom",
51
+ "arrow-thick-left", "arrow-thick-right", "arrow-thick-top", "arrow-top",
52
+ "audio", "audio-spectrum", "badge", "ban", "bar-chart", "basket",
53
+ "battery-empty", "battery-full", "beaker", "bell", "bluetooth", "bold",
54
+ "bolt", "book", "bookmark", "box", "briefcase", "british-pound",
55
+ "browser", "brush", "bug", "bullhorn", "calculator", "calendar",
56
+ "camera-slr", "caret-bottom", "caret-left", "caret-right", "caret-top",
57
+ "cart", "chat", "check", "chevron-bottom", "chevron-left",
58
+ "chevron-right", "chevron-top", "circle-check", "circle-x", "clipboard",
59
+ "clock", "cloud", "cloud-download", "cloud-upload", "cloudy", "code",
60
+ "cog", "collapse-left", "collapse-down", "collapse-right", "collapse-up",
61
+ "command", "comment-square", "compass", "contrast", "copywriting",
62
+ "credit-card", "crop", "dashboard", "data-transfer-download",
63
+ "data-transfer-upload", "delete", "dial", "document", "dollar",
64
+ "double-quote-sans-left", "double-quote-sans-right",
65
+ "double-quote-serif-left", "double-quote-serif-right", "droplet", "eject",
66
+ "elevator", "ellipses", "envelope-closed", "euro", "envelope-open",
67
+ "excerpt", "expand-down", "expand-left", "expand-right", "expand-up",
68
+ "external-link", "eye", "eyedropper", "file", "fire", "flag", "flash",
69
+ "folder", "fork", "fullscreen-enter", "fullscreen-exit", "globe", "graph",
70
+ "grid-four-up", "grid-three-up", "grid-two-up", "hard-drive", "header",
71
+ "headphones", "heart", "image", "inbox", "home", "infinity", "info",
72
+ "italic", "justify-center", "justify-left", "justify-right", "key",
73
+ "laptop", "layers", "lightbulb", "link-broken", "link-intact", "list",
74
+ "list-rich", "location", "lock-locked", "lock-unlocked", "loop",
75
+ "loop-circular", "loop-square", "magnifying-glass", "map", "map-marker",
76
+ "media-pause", "media-play", "media-record", "media-skip-backward",
77
+ "media-skip-forward", "media-step-backward", "media-step-forward",
78
+ "media-stop", "medical-cross", "menu", "microphone", "minus", "monitor",
79
+ "moon", "move", "musical-note", "paperclip", "people", "pencil", "person",
80
+ "phone", "pie-chart", "pin", "play-circle", "plus", "power-standby",
81
+ "print", "project", "pulse", "puzzle-piece", "question-mark", "rain",
82
+ "random", "reload", "resize-both", "resize-height", "resize-width", "rss",
83
+ "rss-alt", "script", "share", "share-boxed", "shield", "signal",
84
+ "signpost", "sort-ascending", "sort-descending", "spreadsheet", "star",
85
+ "sun", "tablet", "tag", "tags", "target", "task", "terminal", "text",
86
+ "thumb-up", "thumb-down", "timer", "transfer", "trash", "underline",
87
+ "vertical-align-bottom", "vertical-align-center", "vertical-align-top",
88
+ "volume-high", "video", "volume-low", "volume-off", "warning", "wifi",
89
+ "wrench", "x", "yen", "zoom-in", "zoom-out"
90
+ ].each do |icon| %>
91
+ <span class="oi oi-<%= icon %>"></span>
92
+ <% end %>
93
+ </div>
94
+ </div>
95
+
24
96
  <p class="mb15">Here's a sample React conversion form. It takes an email as an input, validates and submits to the server to create a conversion, which will show up in <a href="/a/conversions">conversions admin</a></p>
25
97
 
26
98
  <%= react_component 'Conversion' %>
data/project/package.json CHANGED
@@ -37,6 +37,7 @@
37
37
  "jquery-ujs": "^1.2.2",
38
38
  "lodash-inflection": "^1.5.0",
39
39
  "moment": "^2.18.1",
40
+ "open-iconic": "^1.1.1",
40
41
  "path-complete-extname": "^0.1.0",
41
42
  "popper.js": "^1.12.5",
42
43
  "react": "^15.6.1",
data/project/yarn.lock CHANGED
@@ -3091,6 +3091,10 @@ onetime@^1.0.0:
3091
3091
  version "1.1.0"
3092
3092
  resolved "https://registry.yarnpkg.com/onetime/-/onetime-1.1.0.tgz#a1f7838f8314c516f05ecefcbc4ccfe04b4ed789"
3093
3093
 
3094
+ open-iconic@^1.1.1:
3095
+ version "1.1.1"
3096
+ resolved "https://registry.yarnpkg.com/open-iconic/-/open-iconic-1.1.1.tgz#9dcfc8c7cd3c61cdb4a236b1a347894c97adc0c6"
3097
+
3094
3098
  opn@4.0.2:
3095
3099
  version "4.0.2"
3096
3100
  resolved "https://registry.yarnpkg.com/opn/-/opn-4.0.2.tgz#7abc22e644dff63b0a96d5ab7f2790c0f01abc95"
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mvpkit
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.0
4
+ version: 2.0.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ian Hunter
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-09-10 00:00:00.000000000 Z
11
+ date: 2017-09-11 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: semantic
@@ -54,9 +54,6 @@ files:
54
54
  - README.md
55
55
  - Rakefile
56
56
  - VERSION
57
- - assets/js/application.js
58
- - assets/js/init/controllers.js
59
- - assets/js/init/forms.js
60
57
  - bin/mvp
61
58
  - bin/rails
62
59
  - config/initializers/iteration.rb
@@ -96,6 +93,8 @@ files:
96
93
  - project/app/assets/stylesheets/elements/timeline.scss
97
94
  - project/app/assets/stylesheets/elements/typography.scss
98
95
  - project/app/assets/stylesheets/init/bootstrap.scss
96
+ - project/app/assets/stylesheets/init/font-awesome.scss
97
+ - project/app/assets/stylesheets/init/open-iconic.scss
99
98
  - project/app/assets/stylesheets/init/reset.scss
100
99
  - project/app/assets/stylesheets/init/variables.scss
101
100
  - project/app/assets/stylesheets/treatments/backgrounds.scss
@@ -155,6 +154,7 @@ files:
155
154
  - project/app/helpers/application_helper.rb
156
155
  - project/app/javascript/components/.gitkeep
157
156
  - project/app/javascript/components/conversion.jsx
157
+ - project/app/javascript/components/examples/reactstrap.jsx
158
158
  - project/app/javascript/packs/application.js
159
159
  - project/app/javascript/packs/server_rendering.js
160
160
  - project/app/mailers/application_mailer.rb
@@ -1,31 +0,0 @@
1
- require('jquery')
2
- require('jquery-ujs')
3
- require('jquery.cookie')
4
- var _ = require('lodash')
5
- var is = require('is')
6
-
7
- require('./init/controllers')
8
- require('./init/forms')
9
-
10
- window.track = function(event, attributes, fn){
11
- console.log("Track: " + event + " " + JSON.stringify(attributes))
12
-
13
- if (is.fn(attributes)) fn = attributes, attributes = null;
14
- if (is.undefined(attributes)) { attributes = {} }
15
- if ($.cookie('invisible') == "true") {
16
- if (!is.undefined(fn)) { fn() }
17
- return
18
- }
19
-
20
- var attrs = _.extend({
21
- iteration: $('body').data('iteration')
22
- }, attributes)
23
-
24
- if (typeof(analytics) != 'undefined') {
25
- analytics.track(event, attrs, fn);
26
- }
27
-
28
- if (typeof(amplitude) != 'undefined') {
29
- amplitude.getInstance().logEvent(event, attrs, fn);
30
- }
31
- }
@@ -1,26 +0,0 @@
1
- window.controllers = {}
2
-
3
- let handler = function(){
4
- var $body = $("body");
5
- var controller = $body.data("controller").replace(/\//g, "_");
6
- var action = $body.data("action");
7
-
8
- var activeController = window.controllers[controller];
9
-
10
- if (activeController !== undefined) {
11
- if (window.env == "development") {
12
- console.log("[Controllers] " + controller + "." + action + "()");
13
- }
14
-
15
- if ($.isFunction(activeController.init)) {
16
- activeController.init();
17
- }
18
-
19
- if ($.isFunction(activeController[action])) {
20
- activeController[action]();
21
- }
22
- }
23
- }
24
-
25
- // $(handler);
26
- document.addEventListener("turbolinks:load", handler)
@@ -1,12 +0,0 @@
1
- $(function(){
2
- $('form.no-enter-submit').bind("keypress", function(e) {
3
- if (e.keyCode == 13) {
4
- e.preventDefault();
5
- return false;
6
- }
7
- });
8
-
9
- $('form.disable-on-submit').on('submit', function(e){
10
- $(this).find(".btn").addClass('disabled')
11
- })
12
- })