playbook_ui 2.8.3 → 2.8.4

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 (62) hide show
  1. checksums.yaml +4 -4
  2. data/app/pb_kits/playbook/packs/examples.js +15 -0
  3. data/app/pb_kits/playbook/packs/kits.js +5 -0
  4. data/app/pb_kits/playbook/packs/pb_label_pill.js +4 -0
  5. data/app/pb_kits/playbook/packs/pb_owner.js +4 -0
  6. data/app/pb_kits/playbook/packs/pb_owner_phone.js +4 -0
  7. data/app/pb_kits/playbook/packs/pb_phone.js +4 -0
  8. data/app/pb_kits/playbook/packs/pb_toggle.js +4 -0
  9. data/app/pb_kits/playbook/packs/site_styles/_kit_style_index.scss +5 -0
  10. data/app/pb_kits/playbook/pb_label_pill/_label_pill.html.erb +7 -0
  11. data/app/pb_kits/playbook/pb_label_pill/_label_pill.jsx +21 -0
  12. data/app/pb_kits/playbook/pb_label_pill/_label_pill.scss +11 -0
  13. data/app/pb_kits/playbook/pb_label_pill/docs/_label_pill_default.html.erb +34 -0
  14. data/app/pb_kits/playbook/pb_label_pill/docs/_label_pill_default.jsx +12 -0
  15. data/app/pb_kits/playbook/pb_label_pill/docs/example.yml +9 -0
  16. data/app/pb_kits/playbook/pb_label_pill/docs/index.js +1 -0
  17. data/app/pb_kits/playbook/pb_label_pill/label_pill.rb +58 -0
  18. data/app/pb_kits/playbook/pb_list/_list.html.erb +1 -1
  19. data/app/pb_kits/playbook/pb_list/_list.jsx +3 -3
  20. data/app/pb_kits/playbook/pb_list/_list.scss +1 -1
  21. data/app/pb_kits/playbook/pb_list/docs/_list_dark_lg.html.erb +1 -1
  22. data/app/pb_kits/playbook/pb_list/docs/_list_lg.html.erb +1 -1
  23. data/app/pb_kits/playbook/pb_list/list.rb +8 -7
  24. data/app/pb_kits/playbook/pb_owner/_owner.html.erb +7 -0
  25. data/app/pb_kits/playbook/pb_owner/_owner.jsx +21 -0
  26. data/app/pb_kits/playbook/pb_owner/_owner.scss +11 -0
  27. data/app/pb_kits/playbook/pb_owner/docs/_owner_default.html.erb +1 -0
  28. data/app/pb_kits/playbook/pb_owner/docs/_owner_default.jsx +12 -0
  29. data/app/pb_kits/playbook/pb_owner/docs/example.yml +9 -0
  30. data/app/pb_kits/playbook/pb_owner/docs/index.js +1 -0
  31. data/app/pb_kits/playbook/pb_owner/owner.rb +52 -0
  32. data/app/pb_kits/playbook/pb_owner_phone/_owner_phone.html.erb +7 -0
  33. data/app/pb_kits/playbook/pb_owner_phone/_owner_phone.jsx +21 -0
  34. data/app/pb_kits/playbook/pb_owner_phone/_owner_phone.scss +9 -0
  35. data/app/pb_kits/playbook/pb_owner_phone/docs/_owner_phone_default.html.erb +6 -0
  36. data/app/pb_kits/playbook/pb_owner_phone/docs/_owner_phone_default.jsx +12 -0
  37. data/app/pb_kits/playbook/pb_owner_phone/docs/example.yml +9 -0
  38. data/app/pb_kits/playbook/pb_owner_phone/docs/index.js +1 -0
  39. data/app/pb_kits/playbook/pb_owner_phone/owner_phone.rb +64 -0
  40. data/app/pb_kits/playbook/pb_phone/_phone.html.erb +6 -0
  41. data/app/pb_kits/playbook/pb_phone/_phone.jsx +21 -0
  42. data/app/pb_kits/playbook/pb_phone/_phone.scss +2 -0
  43. data/app/pb_kits/playbook/pb_phone/docs/_phone_default.html.erb +4 -0
  44. data/app/pb_kits/playbook/pb_phone/docs/_phone_default.jsx +12 -0
  45. data/app/pb_kits/playbook/pb_phone/docs/example.yml +9 -0
  46. data/app/pb_kits/playbook/pb_phone/docs/index.js +1 -0
  47. data/app/pb_kits/playbook/pb_phone/phone.rb +69 -0
  48. data/app/pb_kits/playbook/pb_toggle/_toggle.html.erb +12 -0
  49. data/app/pb_kits/playbook/pb_toggle/_toggle.jsx +21 -0
  50. data/app/pb_kits/playbook/pb_toggle/_toggle.scss +57 -0
  51. data/app/pb_kits/playbook/pb_toggle/docs/_toggle_checked.html.erb +11 -0
  52. data/app/pb_kits/playbook/pb_toggle/docs/_toggle_default.html.erb +11 -0
  53. data/app/pb_kits/playbook/pb_toggle/docs/_toggle_default.jsx +13 -0
  54. data/app/pb_kits/playbook/pb_toggle/docs/example.yml +9 -0
  55. data/app/pb_kits/playbook/pb_toggle/docs/index.js +1 -0
  56. data/app/pb_kits/playbook/pb_toggle/toggle.rb +59 -0
  57. data/lib/generators/kit/kit_generator.rb +13 -9
  58. data/lib/generators/kit/templates/kit_ruby.erb.tt +3 -1
  59. data/lib/playbook/engine.rb +1 -0
  60. data/lib/playbook/version.rb +1 -1
  61. data/lib/tasks/pb_release.rake +69 -0
  62. metadata +92 -44
@@ -0,0 +1,12 @@
1
+ import React from "react"
2
+ import Phone from "../_phone.jsx"
3
+
4
+ function PhoneDefault() {
5
+ return (
6
+ <div>
7
+ <Phone />
8
+ </div>
9
+ )
10
+ }
11
+
12
+ export default PhoneDefault;
@@ -0,0 +1,9 @@
1
+ examples:
2
+
3
+ rails:
4
+ - phone_default: Default
5
+
6
+
7
+ react:
8
+ - phone_default: Default
9
+
@@ -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,11 @@
1
+ <%= pb_rails("toggle", props: {
2
+ size: "md",
3
+ checked: true
4
+ }) %>
5
+
6
+ <br>
7
+
8
+ <%= pb_rails("toggle", props: {
9
+ size: "md",
10
+ checked: false
11
+ }) %>
@@ -0,0 +1,11 @@
1
+ <%= pb_rails("toggle", props: {
2
+ size: "sm",
3
+ checked: false
4
+ }) %>
5
+
6
+ <br>
7
+
8
+ <%= pb_rails("toggle", props: {
9
+ size: "md",
10
+ checked: false
11
+ }) %>
@@ -0,0 +1,13 @@
1
+ import React from "react"
2
+ import Toggle from "../_toggle.jsx"
3
+
4
+ function ToggleDefault() {
5
+ return (
6
+ <div>
7
+ <Toggle size="sm"/>
8
+ <Toggle size="md"/>
9
+ </div>
10
+ )
11
+ }
12
+
13
+ export default ToggleDefault;
@@ -0,0 +1,9 @@
1
+ examples:
2
+
3
+ rails:
4
+ - toggle_default: Sizes
5
+ - toggle_checked: Default State
6
+
7
+
8
+ react:
9
+ - toggle_default: Default
@@ -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?("app/pb_kits/playbook/pb_#{@kit_name_underscore}")
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", "app/pb_kits/playbook/pb_#{@kit_name_underscore}/_#{@kit_name_underscore}.scss"
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", "app/pb_kits/playbook/pb_#{@kit_name_underscore}/#{@kit_name_underscore}.rb"
59
- template "kit_html.erb", "app/pb_kits/playbook/pb_#{@kit_name_underscore}/_#{@kit_name_underscore}.html.erb"
60
- template "kit_example_rails.erb", "app/pb_kits/playbook/pb_#{@kit_name_underscore}/docs/_#{@kit_name_underscore}_default.html.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", "app/pb_kits/playbook/pb_#{@kit_name_underscore}/_#{@kit_name_underscore}.jsx"
70
- template "kit_example_react.erb", "app/pb_kits/playbook/pb_#{@kit_name_underscore}/docs/_#{@kit_name_underscore}_default.jsx"
71
- template "kit_js.erb", "app/pb_kits/playbook/pb_#{@kit_name_underscore}/docs/index.js"
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", "app/pb_kits/playbook/pb_#{@kit_name_underscore}/docs/example.yml"
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| ":configured_#{key.parameterize.underscore}".to_sym }.join(",\n\t\t\t\t\t") %>].freeze
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") %>
@@ -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"
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Playbook
4
- VERSION = "2.8.3".freeze
4
+ VERSION = "2.8.4".freeze
5
5
  end
@@ -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