playbook_ui 2.8.3 → 2.8.4
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/app/pb_kits/playbook/packs/examples.js +15 -0
- data/app/pb_kits/playbook/packs/kits.js +5 -0
- data/app/pb_kits/playbook/packs/pb_label_pill.js +4 -0
- data/app/pb_kits/playbook/packs/pb_owner.js +4 -0
- data/app/pb_kits/playbook/packs/pb_owner_phone.js +4 -0
- data/app/pb_kits/playbook/packs/pb_phone.js +4 -0
- data/app/pb_kits/playbook/packs/pb_toggle.js +4 -0
- data/app/pb_kits/playbook/packs/site_styles/_kit_style_index.scss +5 -0
- data/app/pb_kits/playbook/pb_label_pill/_label_pill.html.erb +7 -0
- data/app/pb_kits/playbook/pb_label_pill/_label_pill.jsx +21 -0
- data/app/pb_kits/playbook/pb_label_pill/_label_pill.scss +11 -0
- data/app/pb_kits/playbook/pb_label_pill/docs/_label_pill_default.html.erb +34 -0
- data/app/pb_kits/playbook/pb_label_pill/docs/_label_pill_default.jsx +12 -0
- data/app/pb_kits/playbook/pb_label_pill/docs/example.yml +9 -0
- data/app/pb_kits/playbook/pb_label_pill/docs/index.js +1 -0
- data/app/pb_kits/playbook/pb_label_pill/label_pill.rb +58 -0
- data/app/pb_kits/playbook/pb_list/_list.html.erb +1 -1
- data/app/pb_kits/playbook/pb_list/_list.jsx +3 -3
- data/app/pb_kits/playbook/pb_list/_list.scss +1 -1
- data/app/pb_kits/playbook/pb_list/docs/_list_dark_lg.html.erb +1 -1
- data/app/pb_kits/playbook/pb_list/docs/_list_lg.html.erb +1 -1
- data/app/pb_kits/playbook/pb_list/list.rb +8 -7
- data/app/pb_kits/playbook/pb_owner/_owner.html.erb +7 -0
- data/app/pb_kits/playbook/pb_owner/_owner.jsx +21 -0
- data/app/pb_kits/playbook/pb_owner/_owner.scss +11 -0
- data/app/pb_kits/playbook/pb_owner/docs/_owner_default.html.erb +1 -0
- data/app/pb_kits/playbook/pb_owner/docs/_owner_default.jsx +12 -0
- data/app/pb_kits/playbook/pb_owner/docs/example.yml +9 -0
- data/app/pb_kits/playbook/pb_owner/docs/index.js +1 -0
- data/app/pb_kits/playbook/pb_owner/owner.rb +52 -0
- data/app/pb_kits/playbook/pb_owner_phone/_owner_phone.html.erb +7 -0
- data/app/pb_kits/playbook/pb_owner_phone/_owner_phone.jsx +21 -0
- data/app/pb_kits/playbook/pb_owner_phone/_owner_phone.scss +9 -0
- data/app/pb_kits/playbook/pb_owner_phone/docs/_owner_phone_default.html.erb +6 -0
- data/app/pb_kits/playbook/pb_owner_phone/docs/_owner_phone_default.jsx +12 -0
- data/app/pb_kits/playbook/pb_owner_phone/docs/example.yml +9 -0
- data/app/pb_kits/playbook/pb_owner_phone/docs/index.js +1 -0
- data/app/pb_kits/playbook/pb_owner_phone/owner_phone.rb +64 -0
- data/app/pb_kits/playbook/pb_phone/_phone.html.erb +6 -0
- data/app/pb_kits/playbook/pb_phone/_phone.jsx +21 -0
- data/app/pb_kits/playbook/pb_phone/_phone.scss +2 -0
- data/app/pb_kits/playbook/pb_phone/docs/_phone_default.html.erb +4 -0
- data/app/pb_kits/playbook/pb_phone/docs/_phone_default.jsx +12 -0
- data/app/pb_kits/playbook/pb_phone/docs/example.yml +9 -0
- data/app/pb_kits/playbook/pb_phone/docs/index.js +1 -0
- data/app/pb_kits/playbook/pb_phone/phone.rb +69 -0
- data/app/pb_kits/playbook/pb_toggle/_toggle.html.erb +12 -0
- data/app/pb_kits/playbook/pb_toggle/_toggle.jsx +21 -0
- data/app/pb_kits/playbook/pb_toggle/_toggle.scss +57 -0
- data/app/pb_kits/playbook/pb_toggle/docs/_toggle_checked.html.erb +11 -0
- data/app/pb_kits/playbook/pb_toggle/docs/_toggle_default.html.erb +11 -0
- data/app/pb_kits/playbook/pb_toggle/docs/_toggle_default.jsx +13 -0
- data/app/pb_kits/playbook/pb_toggle/docs/example.yml +9 -0
- data/app/pb_kits/playbook/pb_toggle/docs/index.js +1 -0
- data/app/pb_kits/playbook/pb_toggle/toggle.rb +59 -0
- data/lib/generators/kit/kit_generator.rb +13 -9
- data/lib/generators/kit/templates/kit_ruby.erb.tt +3 -1
- data/lib/playbook/engine.rb +1 -0
- data/lib/playbook/version.rb +1 -1
- data/lib/tasks/pb_release.rake +69 -0
- metadata +92 -44
@@ -0,0 +1 @@
|
|
1
|
+
export {default as PhoneDefault} from './_phone_default.jsx';
|
@@ -0,0 +1,69 @@
|
|
1
|
+
require "action_view"
|
2
|
+
include ActionView::Helpers::NumberHelper
|
3
|
+
|
4
|
+
module Playbook
|
5
|
+
module PbPhone
|
6
|
+
class Phone < Playbook::PbKit::Base
|
7
|
+
PROPS = [:configured_classname,
|
8
|
+
:configured_data,
|
9
|
+
:configured_id,
|
10
|
+
:configured_icon,
|
11
|
+
:configured_number].freeze
|
12
|
+
|
13
|
+
def initialize(classname: default_configuration,
|
14
|
+
data: default_configuration,
|
15
|
+
id: default_configuration,
|
16
|
+
icon: default_configuration,
|
17
|
+
number: default_configuration)
|
18
|
+
self.configured_classname = classname
|
19
|
+
self.configured_data = data
|
20
|
+
self.configured_id = id
|
21
|
+
self.configured_icon = icon
|
22
|
+
self.configured_number = number
|
23
|
+
end
|
24
|
+
|
25
|
+
def icon
|
26
|
+
# TODO: Strict options and automaticlly pass the correct icon name
|
27
|
+
if is_set? configured_icon
|
28
|
+
icon_props = { icon: configured_icon, fixed_width: true}
|
29
|
+
pb_icon = Playbook::PbIcon::Icon.new(icon_props)
|
30
|
+
ApplicationController.renderer.render(partial: pb_icon, as: :object)
|
31
|
+
else
|
32
|
+
""
|
33
|
+
end
|
34
|
+
end
|
35
|
+
|
36
|
+
def number
|
37
|
+
if is_set? configured_number
|
38
|
+
if formatted_number
|
39
|
+
return number_to_phone(formatted_number, area_code: true)
|
40
|
+
end
|
41
|
+
end
|
42
|
+
end
|
43
|
+
|
44
|
+
def formatted_number
|
45
|
+
configured_number.to_s.gsub(/\D/, "")
|
46
|
+
end
|
47
|
+
|
48
|
+
def value
|
49
|
+
pb_body = Playbook::PbBody::Body.new(color: "light") do
|
50
|
+
icon + number
|
51
|
+
end
|
52
|
+
ApplicationController.renderer.render(partial: pb_body, as: :object)
|
53
|
+
end
|
54
|
+
|
55
|
+
def to_partial_path
|
56
|
+
"pb_phone/phone"
|
57
|
+
end
|
58
|
+
|
59
|
+
private
|
60
|
+
|
61
|
+
DEFAULT = Object.new
|
62
|
+
private_constant :DEFAULT
|
63
|
+
def default_configuration
|
64
|
+
DEFAULT
|
65
|
+
end
|
66
|
+
attr_accessor(*PROPS)
|
67
|
+
end
|
68
|
+
end
|
69
|
+
end
|
@@ -0,0 +1,12 @@
|
|
1
|
+
<%= content_tag(:div,
|
2
|
+
id: object.id,
|
3
|
+
data: object.data,
|
4
|
+
class: object.classname(object.kit_class),
|
5
|
+
) do %>
|
6
|
+
|
7
|
+
<label class="pb_toggle_wrapper">
|
8
|
+
<input type="checkbox" <%= object.checked %> />
|
9
|
+
<div class="pb_toggle_control"></div>
|
10
|
+
</label>
|
11
|
+
|
12
|
+
<% end %>
|
@@ -0,0 +1,21 @@
|
|
1
|
+
import React from 'react';
|
2
|
+
import PropTypes from "prop-types";
|
3
|
+
|
4
|
+
const propTypes = {
|
5
|
+
className: PropTypes.string,
|
6
|
+
id: PropTypes.string
|
7
|
+
};
|
8
|
+
|
9
|
+
class Toggle extends React.Component {
|
10
|
+
render() {
|
11
|
+
return (
|
12
|
+
<div className="pb_toggle">
|
13
|
+
<span>TOGGLE CONTENT</span>
|
14
|
+
</div>
|
15
|
+
)
|
16
|
+
}
|
17
|
+
}
|
18
|
+
|
19
|
+
Toggle.propTypes = propTypes;
|
20
|
+
|
21
|
+
export default Toggle;
|
@@ -0,0 +1,57 @@
|
|
1
|
+
@import "../tokens/colors";
|
2
|
+
|
3
|
+
$color_checkbox_success: $data_1;
|
4
|
+
$color_checkbox_default: $border_light;
|
5
|
+
$transition: .2s cubic-bezier(0.95, 0.05, 0.795, 0.035);
|
6
|
+
$toggle_sizes: (
|
7
|
+
"sm": 50px,
|
8
|
+
"md": 60px,
|
9
|
+
);
|
10
|
+
|
11
|
+
[class^=pb_toggle] {
|
12
|
+
position: relative;
|
13
|
+
|
14
|
+
@each $name, $size in $toggle_sizes {
|
15
|
+
&[class*=_#{$name}] {
|
16
|
+
|
17
|
+
$width: $size;
|
18
|
+
$height: $width/2;
|
19
|
+
|
20
|
+
.pb_toggle_wrapper {
|
21
|
+
.pb_toggle_control {
|
22
|
+
transition: $transition;
|
23
|
+
width: $width;
|
24
|
+
height: $height;
|
25
|
+
display: block;
|
26
|
+
border-radius: $height;
|
27
|
+
border: 3px solid $color_checkbox_default;
|
28
|
+
background-color: $color_checkbox_default;
|
29
|
+
position: relative;
|
30
|
+
box-sizing: content-box;
|
31
|
+
&:after {
|
32
|
+
transition: $transition;
|
33
|
+
content: "";
|
34
|
+
width: $width/2;
|
35
|
+
height: $height;
|
36
|
+
display: block;
|
37
|
+
background-color: $white;
|
38
|
+
border-radius: 50%;
|
39
|
+
position: absolute;
|
40
|
+
top: 0;
|
41
|
+
left: 0;
|
42
|
+
}
|
43
|
+
}
|
44
|
+
input {
|
45
|
+
display: none;
|
46
|
+
&:checked + .pb_toggle_control {
|
47
|
+
border-color: $color_checkbox_success;
|
48
|
+
background-color: $color_checkbox_success;
|
49
|
+
&:after{
|
50
|
+
left: $width/2;
|
51
|
+
}
|
52
|
+
}
|
53
|
+
}
|
54
|
+
}
|
55
|
+
}
|
56
|
+
}
|
57
|
+
}
|
@@ -0,0 +1 @@
|
|
1
|
+
export {default as ToggleDefault} from './_toggle_default.jsx';
|
@@ -0,0 +1,59 @@
|
|
1
|
+
module Playbook
|
2
|
+
module PbToggle
|
3
|
+
class Toggle < Playbook::PbKit::Base
|
4
|
+
PROPS = [:configured_classname,
|
5
|
+
:configured_data,
|
6
|
+
:configured_id,
|
7
|
+
:configured_size,
|
8
|
+
:configured_checked
|
9
|
+
].freeze
|
10
|
+
|
11
|
+
def initialize(classname: default_configuration,
|
12
|
+
data: default_configuration,
|
13
|
+
id: default_configuration,
|
14
|
+
size: default_configuration,
|
15
|
+
checked: default_configuration)
|
16
|
+
self.configured_classname = classname
|
17
|
+
self.configured_data = data
|
18
|
+
self.configured_id = id
|
19
|
+
self.configured_size = size
|
20
|
+
self.configured_checked = checked
|
21
|
+
end
|
22
|
+
|
23
|
+
def size
|
24
|
+
size_options = %w[sm md]
|
25
|
+
one_of_value(configured_size, size_options, "md")
|
26
|
+
end
|
27
|
+
|
28
|
+
def checked
|
29
|
+
true_value(configured_checked, "checked='true'", "")
|
30
|
+
end
|
31
|
+
|
32
|
+
def checked_class
|
33
|
+
checked ? "on" : "off"
|
34
|
+
end
|
35
|
+
|
36
|
+
def kit_class
|
37
|
+
toggle_options = [
|
38
|
+
"pb_toggle",
|
39
|
+
size,
|
40
|
+
checked_class
|
41
|
+
]
|
42
|
+
toggle_options.join("_")
|
43
|
+
end
|
44
|
+
|
45
|
+
def to_partial_path
|
46
|
+
"pb_toggle/toggle"
|
47
|
+
end
|
48
|
+
|
49
|
+
private
|
50
|
+
|
51
|
+
DEFAULT = Object.new
|
52
|
+
private_constant :DEFAULT
|
53
|
+
def default_configuration
|
54
|
+
DEFAULT
|
55
|
+
end
|
56
|
+
attr_accessor(*PROPS)
|
57
|
+
end
|
58
|
+
end
|
59
|
+
end
|
@@ -28,8 +28,10 @@ class KitGenerator < Rails::Generators::NamedBase
|
|
28
28
|
@kit_class_val.push("self.configured_#{key.parameterize.underscore} = #{key.parameterize.underscore}")
|
29
29
|
end
|
30
30
|
|
31
|
+
full_kit_directory = "app/pb_kits/playbook/pb_#{@kit_name_underscore}"
|
32
|
+
|
31
33
|
# Check if kit already exists =======================
|
32
|
-
if File.directory?(
|
34
|
+
if File.directory?(full_kit_directory)
|
33
35
|
say_status "#{@kit_name_capitalize} kit already exists.",
|
34
36
|
"Please choose another name or manually make changes to the existing kit.",
|
35
37
|
:red
|
@@ -44,7 +46,7 @@ class KitGenerator < Rails::Generators::NamedBase
|
|
44
46
|
:green
|
45
47
|
|
46
48
|
# Generate SCSS files ==============================
|
47
|
-
template "kit_scss.erb", "
|
49
|
+
template "kit_scss.erb", "#{full_kit_directory}/_#{@kit_name_underscore}.scss"
|
48
50
|
open("app/pb_kits/playbook/packs/site_styles/_kit_style_index.scss", "a") do |f|
|
49
51
|
f.puts "@" + "import " + "\'" + "../../pb_#{@kit_name_underscore}/#{@kit_name_underscore}" + "\';"
|
50
52
|
end
|
@@ -55,9 +57,9 @@ class KitGenerator < Rails::Generators::NamedBase
|
|
55
57
|
# Ask user if Rails version should be generated ======
|
56
58
|
if yes?("Create RAILS #{@kit_name_underscore} kit? (y/N)")
|
57
59
|
@rails_kit = true
|
58
|
-
template "kit_ruby.erb", "
|
59
|
-
template "kit_html.erb", "
|
60
|
-
template "kit_example_rails.erb", "
|
60
|
+
template "kit_ruby.erb", "#{full_kit_directory}/#{@kit_name_underscore}.rb"
|
61
|
+
template "kit_html.erb", "#{full_kit_directory}/_#{@kit_name_underscore}.html.erb"
|
62
|
+
template "kit_example_rails.erb", "#{full_kit_directory}/docs/_#{@kit_name_underscore}_default.html.erb"
|
61
63
|
say_status "complete",
|
62
64
|
"#{@kit_name_capitalize} rails kit successfully created.",
|
63
65
|
:green
|
@@ -66,9 +68,9 @@ class KitGenerator < Rails::Generators::NamedBase
|
|
66
68
|
# Ask user if React version should be generated ======
|
67
69
|
if yes?("Create REACT #{@kit_name_pascal} kit? (y/N)")
|
68
70
|
@react_kit = true
|
69
|
-
template "kit_jsx.erb", "
|
70
|
-
template "kit_example_react.erb", "
|
71
|
-
template "kit_js.erb", "
|
71
|
+
template "kit_jsx.erb", "#{full_kit_directory}/_#{@kit_name_underscore}.jsx"
|
72
|
+
template "kit_example_react.erb", "#{full_kit_directory}/docs/_#{@kit_name_underscore}_default.jsx"
|
73
|
+
template "kit_js.erb", "#{full_kit_directory}/docs/index.js"
|
72
74
|
template "kit_pack.erb", "app/pb_kits/playbook/packs/pb_#{@kit_name_underscore}.js"
|
73
75
|
|
74
76
|
# Import in all kits.js =========================
|
@@ -87,7 +89,9 @@ class KitGenerator < Rails::Generators::NamedBase
|
|
87
89
|
end
|
88
90
|
|
89
91
|
# Create kit example.yml
|
90
|
-
template "kit_example_yml.erb", "
|
92
|
+
template "kit_example_yml.erb", "#{full_kit_directory}/docs/example.yml"
|
93
|
+
|
94
|
+
`rubocop --safe-auto-correct #{full_kit_directory}`
|
91
95
|
end
|
92
96
|
end
|
93
97
|
end
|
@@ -1,7 +1,9 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
module Playbook
|
2
4
|
module Pb<%= @kit_name_pascal %>
|
3
5
|
class <%= @kit_name_pascal %> < Playbook::PbKit::Base
|
4
|
-
PROPS = [<%= @kit_props.map{|key,val| "
|
6
|
+
PROPS = %i[<%= @kit_props.map{|key,val| "configured_#{key.parameterize.underscore}".to_sym }.join("\n\t\t\t\t\t") %>].freeze
|
5
7
|
|
6
8
|
def initialize(<%= @kit_class_init.join(",\n\t\t\t\t\t\t\t") %>)
|
7
9
|
<%= @kit_class_val.join("\n\t\t\t\t") %>
|
data/lib/playbook/engine.rb
CHANGED
@@ -14,6 +14,7 @@ module Playbook
|
|
14
14
|
|
15
15
|
config.assets.paths ||= []
|
16
16
|
config.assets.paths << "#{Gem.loaded_specs['playbook_ui'].full_gem_path}/fonts"
|
17
|
+
config.assets.paths << "#{Gem.loaded_specs['playbook_ui'].full_gem_path}/app/pb_kits/playbook/pb_*"
|
17
18
|
|
18
19
|
config.sass.load_paths ||= []
|
19
20
|
config.sass.load_paths << "#{Gem.loaded_specs['playbook_ui'].full_gem_path}/app/pb_kits/playbook"
|
data/lib/playbook/version.rb
CHANGED
@@ -0,0 +1,69 @@
|
|
1
|
+
namespace :pb_release do
|
2
|
+
|
3
|
+
desc "Update the version number in preparation to release"
|
4
|
+
task version: :environment do
|
5
|
+
old_version = Playbook::VERSION
|
6
|
+
new_version = ''
|
7
|
+
STDOUT.puts "What would you like the next release number to be? Currently #{old_version}"
|
8
|
+
new_version = STDIN.gets.chomp
|
9
|
+
|
10
|
+
puts "Ok great, let's make version #{new_version}"
|
11
|
+
puts "\n\n"
|
12
|
+
|
13
|
+
# Update package.json
|
14
|
+
package = File.read("package.json")
|
15
|
+
new_package = package.gsub(/"version": "#{old_version}",/, "\"version\": \"#{new_version}\",")
|
16
|
+
File.open("package.json", "w") {|file| file.puts new_package }
|
17
|
+
puts "Updated package.json"
|
18
|
+
|
19
|
+
# Update version.rb
|
20
|
+
version_rb = File.read("lib/playbook/version.rb")
|
21
|
+
new_version_rb = version_rb.gsub(/VERSION = "#{old_version}".freeze/, "VERSION = \"#{new_version}\".freeze")
|
22
|
+
File.open("lib/playbook/version.rb", "w") {|file| file.puts new_version_rb }
|
23
|
+
puts "Updated lib/playbook/version.rb"
|
24
|
+
|
25
|
+
# Update gemfile.lock
|
26
|
+
gemfile = File.read("gemfile.lock")
|
27
|
+
new_gemfile = gemfile.gsub(/playbook_ui \(#{Regexp.escape(old_version)}\)/, "playbook_ui (#{new_version})")
|
28
|
+
File.open("gemfile.lock", "w") {|file| file.puts new_gemfile }
|
29
|
+
puts "Updated gemfile.lock"
|
30
|
+
puts "\n\n"
|
31
|
+
|
32
|
+
puts "Commit your changes and create a PR to merge to master"
|
33
|
+
end
|
34
|
+
|
35
|
+
desc "Publish to RubyGems, NPM, and Create a Tag"
|
36
|
+
task push: :environment do
|
37
|
+
version = Playbook::VERSION
|
38
|
+
puts "You about to release version #{version}. Is that correct? (y/N)"
|
39
|
+
input = STDIN.gets.chomp
|
40
|
+
raise Nope unless input.downcase == "y"
|
41
|
+
|
42
|
+
# RubyGems
|
43
|
+
puts "\nCreating Gem..."
|
44
|
+
`gem build playbook_ui.gemspec`
|
45
|
+
puts "\nPushing to RubyGems..."
|
46
|
+
`gem push playbook_ui-#{version}.gem`
|
47
|
+
puts "\nPushed to RubyGems. Now lets clean up..."
|
48
|
+
`rm -rf playbook_ui-#{version}.gem`
|
49
|
+
|
50
|
+
# NPM
|
51
|
+
puts "\nPushing to NPM..."
|
52
|
+
`npm publish`
|
53
|
+
|
54
|
+
# Tags
|
55
|
+
puts "\nPushed to NPM. Now lets create a tag..."
|
56
|
+
description = ''
|
57
|
+
puts "\nWrite a brief tag release description. You can edit this later on GitHub."
|
58
|
+
description = STDIN.gets.chomp
|
59
|
+
puts "\nCreating Tag..."
|
60
|
+
`git tag -a #{version} -m "#{description}"`
|
61
|
+
puts "\nPushing Tag to GitHub..."
|
62
|
+
`git push origin #{version}`
|
63
|
+
|
64
|
+
puts "\n\n"
|
65
|
+
puts "Complete! Don't forget to add your release notes https://github.com/powerhome/playbook/releases/tag/#{version}"
|
66
|
+
|
67
|
+
end
|
68
|
+
|
69
|
+
end
|