playbook_ui 7.1.0.pre.alpha2 → 7.2.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (58) hide show
  1. checksums.yaml +4 -4
  2. data/app/pb_kits/playbook/pb_bar_graph/bar_graph.rb +1 -1
  3. data/app/pb_kits/playbook/pb_circle_chart/_circle_chart.jsx +1 -1
  4. data/app/pb_kits/playbook/pb_gauge/_gauge.jsx +1 -1
  5. data/app/pb_kits/playbook/pb_line_graph/line_graph.rb +1 -1
  6. data/app/pb_kits/playbook/pb_nav/_item.html.erb +3 -0
  7. data/app/pb_kits/playbook/pb_nav/_item.jsx +14 -1
  8. data/app/pb_kits/playbook/pb_nav/_nav.jsx +3 -0
  9. data/app/pb_kits/playbook/pb_nav/_vertical_nav.scss +22 -3
  10. data/app/pb_kits/playbook/pb_nav/docs/_borderless_nav.html.erb +6 -0
  11. data/app/pb_kits/playbook/pb_nav/docs/_borderless_nav.jsx +29 -0
  12. data/app/pb_kits/playbook/pb_nav/docs/_with_img_nav.html.erb +7 -0
  13. data/app/pb_kits/playbook/pb_nav/docs/_with_img_nav.jsx +42 -0
  14. data/app/pb_kits/playbook/pb_nav/docs/_with_img_nav.md +1 -0
  15. data/app/pb_kits/playbook/pb_nav/docs/example.yml +5 -0
  16. data/app/pb_kits/playbook/pb_nav/docs/index.js +2 -0
  17. data/app/pb_kits/playbook/pb_nav/item.rb +1 -0
  18. data/app/pb_kits/playbook/pb_nav/nav.rb +6 -1
  19. data/app/pb_kits/playbook/pb_pill/_pill.scss +1 -0
  20. data/app/pb_kits/playbook/pb_section_separator/_section_separator.jsx +1 -3
  21. data/app/pb_kits/playbook/pb_section_separator/_section_separator.scss +26 -47
  22. data/app/pb_kits/playbook/pb_section_separator/_section_separator_mixin.scss +32 -0
  23. data/app/pb_kits/playbook/pb_section_separator/docs/_section_separator_line.jsx +6 -2
  24. data/app/pb_kits/playbook/pb_section_separator/docs/_section_separator_text.jsx +2 -1
  25. data/app/pb_kits/playbook/pb_section_separator/docs/_section_separator_text_background.jsx +2 -1
  26. data/app/pb_kits/playbook/pb_section_separator/docs/_section_separator_vertical.jsx +9 -3
  27. data/app/pb_kits/playbook/pb_section_separator/section_separator.rb +1 -1
  28. data/app/pb_kits/playbook/pb_selectable_card/_selectable_card.html.erb +4 -4
  29. data/app/pb_kits/playbook/pb_selectable_card/docs/_selectable_card_options.html.erb +16 -0
  30. data/app/pb_kits/playbook/pb_selectable_card/docs/example.yml +3 -2
  31. data/app/pb_kits/playbook/pb_selectable_card/selectable_card.rb +16 -9
  32. data/app/pb_kits/playbook/pb_selectable_card_icon/_selectable_card_icon.html.erb +3 -2
  33. data/app/pb_kits/playbook/pb_selectable_card_icon/docs/_selectable_card_icon_options.html.erb +16 -0
  34. data/app/pb_kits/playbook/pb_selectable_card_icon/docs/example.yml +4 -3
  35. data/app/pb_kits/playbook/pb_selectable_card_icon/selectable_card_icon.rb +3 -0
  36. data/app/pb_kits/playbook/pb_selectable_icon/_selectable_icon.html.erb +3 -3
  37. data/app/pb_kits/playbook/pb_selectable_icon/docs/_selectable_icon_options.html.erb +15 -0
  38. data/app/pb_kits/playbook/pb_selectable_icon/docs/example.yml +3 -2
  39. data/app/pb_kits/playbook/pb_selectable_icon/selectable_icon.rb +10 -0
  40. data/app/pb_kits/playbook/pb_typeahead/docs/_typeahead_default.html.erb +3 -2
  41. data/app/pb_kits/playbook/props.rb +1 -1
  42. data/app/pb_kits/playbook/props/base.rb +6 -4
  43. data/lib/playbook/version.rb +1 -1
  44. metadata +13 -18
  45. data/lib/generators/kit/USAGE +0 -5
  46. data/lib/generators/kit/kit_generator.rb +0 -95
  47. data/lib/generators/kit/templates/kit_example_rails.erb.tt +0 -1
  48. data/lib/generators/kit/templates/kit_example_react.erb.tt +0 -10
  49. data/lib/generators/kit/templates/kit_example_yml.erb.tt +0 -9
  50. data/lib/generators/kit/templates/kit_html.erb.tt +0 -7
  51. data/lib/generators/kit/templates/kit_js.erb.tt +0 -1
  52. data/lib/generators/kit/templates/kit_jsx.erb.tt +0 -68
  53. data/lib/generators/kit/templates/kit_ruby.erb.tt +0 -11
  54. data/lib/generators/kit/templates/kit_ruby_spec.erb.tt +0 -11
  55. data/lib/generators/kit/templates/kit_scss.erb +0 -3
  56. data/lib/tasks/changelog.rake +0 -14
  57. data/lib/tasks/pb_release.rake +0 -88
  58. data/lib/tasks/playbook_tasks.rake +0 -26
@@ -1,5 +0,0 @@
1
- Description:
2
- Create a new Playbook kit
3
-
4
- Example:
5
- rails g kit "button"
@@ -1,95 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- class KitGenerator < Rails::Generators::NamedBase
4
- desc "This generator creates a new Playbook Kit"
5
- source_root File.expand_path("templates", __dir__)
6
- class_option :props, type: :array, default: []
7
-
8
- def create_templates
9
- kit_name = name.strip.downcase
10
- @kit_name_uppercase = kit_name.upcase
11
- @kit_name_lowercase = kit_name
12
- @kit_name_capitalize = kit_name.capitalize
13
- @kit_name_underscore = kit_name.parameterize.underscore
14
- @kit_name_pascal = kit_name.titleize.gsub(/\s+/, "")
15
-
16
- kit_props = options[:props].concat(%w[id:string classname:string data:object aria:object])
17
- @kit_props = kit_props.map { |hash| [hash.partition(":").first, hash.partition(":").last] }.to_h
18
- @kit_props = @kit_props.sort.to_h
19
- @unique_props = @kit_props.symbolize_keys.without(:id, :classname, :data, :aria)
20
-
21
- @kit_class_init = []
22
- @kit_props.each do |key, _val|
23
- @kit_class_init.push("#{key.parameterize.underscore}: default_configuration".to_sym)
24
- end
25
-
26
- @kit_class_val = []
27
- @kit_props.each do |key, _value|
28
- @kit_class_val.push("self.configured_#{key.parameterize.underscore} = #{key.parameterize.underscore}")
29
- end
30
-
31
- full_kit_directory = "app/pb_kits/playbook/pb_#{@kit_name_underscore}"
32
-
33
- # Check if kit already exists =======================
34
- if File.directory?(full_kit_directory)
35
- say_status "#{@kit_name_capitalize} kit already exists.",
36
- "Please choose another name or manually make changes to the existing kit.",
37
- :red
38
- return
39
- else
40
- # Add kit to Playbook menu ==========================
41
- open("app/pb_kits/playbook/data/menu.yml", "a") do |f|
42
- f.puts " - #{@kit_name_underscore}"
43
- end
44
- say_status "complete",
45
- "#{@kit_name_capitalize} kit added to Playbook menu.",
46
- :green
47
-
48
- # Generate SCSS files ==============================
49
- template "kit_scss.erb", "#{full_kit_directory}/_#{@kit_name_underscore}.scss"
50
- open("app/pb_kits/playbook/_playbook.scss", "a") do |f|
51
- f.puts "\n@" + "import " + "\'" + "pb_#{@kit_name_underscore}/#{@kit_name_underscore}" + "\';"
52
- end
53
- say_status "complete",
54
- "#{@kit_name_capitalize} kit stylesheet successfully created and imported.",
55
- :green
56
-
57
- # Ask user if Rails version should be generated ======
58
- if yes?("Create RAILS #{@kit_name_underscore} kit? (y/N)")
59
- @rails_kit = true
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"
63
- template "kit_ruby_spec.erb", "spec/pb_kits/playbook/kits/#{@kit_name_underscore}_spec.rb"
64
- say_status "complete",
65
- "#{@kit_name_capitalize} rails kit successfully created.",
66
- :green
67
- end
68
-
69
- # Ask user if React version should be generated ======
70
- if yes?("Create REACT #{@kit_name_pascal} kit? (y/N)")
71
- @react_kit = true
72
- template "kit_jsx.erb", "#{full_kit_directory}/_#{@kit_name_underscore}.jsx"
73
- template "kit_example_react.erb", "#{full_kit_directory}/docs/_#{@kit_name_underscore}_default.jsx"
74
- template "kit_js.erb", "#{full_kit_directory}/docs/index.js"
75
-
76
- # Import kit examples ===========================
77
- append_to_file("app/pb_kits/playbook/packs/react-examples.js") do
78
- "import * as #{@kit_name_pascal} from 'pb_#{@kit_name_underscore}/docs'\nWebpackerReact.setup(#{@kit_name_pascal})\n"
79
- end
80
- append_to_file("app/pb_kits/playbook/index.js") do
81
- "\nexport #{@kit_name_pascal} from 'pb_#{@kit_name_underscore}/_#{@kit_name_underscore}.jsx'"
82
- end
83
-
84
- say_status "complete",
85
- "#{@kit_name_capitalize} react kit successfully created.",
86
- :green
87
- end
88
-
89
- # Create kit example.yml
90
- template "kit_example_yml.erb", "#{full_kit_directory}/docs/example.yml"
91
-
92
- `rubocop --safe-auto-correct #{full_kit_directory}`
93
- end
94
- end
95
- end
@@ -1 +0,0 @@
1
- <%%= pb_rails("<%= @kit_name_underscore %>") %>
@@ -1,10 +0,0 @@
1
- import React from 'react'
2
- import { <%= @kit_name_pascal %> } from '../../'
3
-
4
- const <%= @kit_name_pascal %>Default = () => (
5
- <div>
6
- <<%= @kit_name_pascal %> />
7
- </div>
8
- )
9
-
10
- export default <%= @kit_name_pascal %>Default
@@ -1,9 +0,0 @@
1
- examples:
2
- <% if @rails_kit %>
3
- rails:
4
- - <%= @kit_name_underscore %>_default: Default
5
- <% end %>
6
- <% if @react_kit %>
7
- react:
8
- - <%= @kit_name_underscore %>_default: Default
9
- <% end %>
@@ -1,7 +0,0 @@
1
- <%%= content_tag(:div,
2
- aria: object.aria,
3
- class: object.classname,
4
- data: object.data,
5
- id: object.id) do %>
6
- <span><%= @kit_name_uppercase %> CONTENT</span>
7
- <%% end %>
@@ -1 +0,0 @@
1
- export { default as <%= @kit_name_pascal %>Default } from './_<%= @kit_name_underscore %>_default.jsx'
@@ -1,68 +0,0 @@
1
- <%
2
- break_lines = lambda do |list, spaces = 2, separator = ","|
3
- list.join("#{separator}\n#{" " * spaces}") + separator
4
- end
5
-
6
- type_name = "#{@kit_name_pascal}Props"
7
-
8
- props_types = @kit_props.map do |key, val|
9
- prop_name = key == "classname" ? "className" : key.camelize(:lower)
10
- prop_type = case val
11
- when "enum", "one_of" then "'option_1' | 'option_2'"
12
- when "boolean", "bool" then "boolean"
13
- when "object", "obj" then "object"
14
- else "string"
15
- end
16
-
17
- "#{prop_name}?: #{prop_type}"
18
- end
19
- puts props_types.inspect
20
-
21
- props_names = @kit_props.keys.map do |key|
22
- case key
23
- when "classname" || "className"
24
- "className"
25
- when "aria"
26
- "aria = {}"
27
- when "data"
28
- "data = {}"
29
- else
30
- key
31
- end
32
- end
33
-
34
- %>
35
-
36
- /* @flow */
37
-
38
- import React from 'react'
39
- import classnames from 'classnames'
40
- import { buildAriaProps, buildCss, buildDataProps } from '../utilities/props'
41
- import { globalProps } from '../utilities/globalProps.js'
42
-
43
- type <%= type_name %> = {
44
- <%= break_lines.call(props_types) %>
45
- }
46
-
47
- const <%= @kit_name_pascal %> = (props: <%= type_name %>) => {
48
- const {
49
- <%= break_lines.call(props_names) %>
50
- } = props
51
-
52
- const ariaProps = buildAriaProps(aria)
53
- const dataProps = buildDataProps(data)
54
- const classes = classnames(buildCss('pb_<%= @kit_name_underscore %>'), globalProps(props), className)
55
-
56
- return (
57
- <div
58
- {...ariaProps}
59
- {...dataProps}
60
- className={classes}
61
- id={id}
62
- >
63
- {className}
64
- </div>
65
- )
66
- }
67
-
68
- export default <%= @kit_name_pascal %>
@@ -1,11 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Playbook
4
- module Pb<%= @kit_name_pascal %>
5
- class <%= @kit_name_pascal %>
6
- include Playbook::Props
7
-
8
- partial "<%= "pb_#{@kit_name_underscore}/#{@kit_name_underscore}" %>"
9
- end
10
- end
11
- end
@@ -1,11 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require_relative "../../../../app/pb_kits/playbook/pb_<%= @kit_name_underscore %>/<%= @kit_name_underscore %>"
4
-
5
- RSpec.describe Playbook::Pb<%= @kit_name_capitalize %>::<%= @kit_name_capitalize %> do
6
- subject { Playbook::Pb<%= @kit_name_capitalize %>::<%= @kit_name_capitalize %> }
7
-
8
- it { is_expected.to define_partial }
9
-
10
- # Do not leave this file blank. Use other spec files for example tests.
11
- end
@@ -1,3 +0,0 @@
1
- <%= ".pb_#{@kit_name_underscore}" %> {
2
-
3
- }
@@ -1,14 +0,0 @@
1
- require 'github_changelog_generator/task'
2
-
3
- GitHubChangelogGenerator::RakeTask.new :changelog do |config|
4
- config.user = 'powerhome'
5
- config.project = 'playbook'
6
- config.since_tag = Playbook::VERSION
7
- config.header = ''
8
- config.issues = false
9
- config.base = 'CHANGELOG.md'
10
- config.enhancement_prefix = '**Kit Enhancements:**'
11
- config.bug_prefix = '**Fixed Bugs:**'
12
- config.max_issues = 75
13
- config.add_sections = {"New Kits":{"prefix":"**New Kits:**","labels":["new kit"]},"Improvements": {"prefix":"**Improvements:**","labels":["improvement"]},"Breaking": {"prefix":"**Breaking Changes:**","labels":["breaking"]}}
14
- end
@@ -1,88 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- namespace :pb_release do
4
- desc "Update the version number in preparation to release"
5
- task version: :environment do
6
- puts "\n"
7
- puts "*" * 20 + " Create New Playbook Release " + "*" * 20
8
- ack = "\nFirst, before creating a new version please make sure you are familiar with SemVer guidlines: "
9
- ack += "\nhttps://semver.org/#semantic-versioning-specification-semver. "
10
- ack += "\n\nDoing so will ensure the proper version is selected for the release. "
11
- ack += "\nSee also: https://github.com/powerhome/playbook/wiki/Releasing-a-New-Version#determining-the-version."
12
- ack += "\n\nReady to start? y/N"
13
- STDOUT.puts ack
14
- agreed = STDIN.gets.chomp.downcase
15
-
16
- if agreed == "y"
17
- old_version = Playbook::VERSION
18
- STDOUT.puts "What would you like the next release number to be? Currently #{old_version}"
19
- new_version = STDIN.gets.chomp
20
- puts "Ok great, let's make version #{new_version}"
21
- puts "\n\n"
22
-
23
- # Update package.json
24
- package = File.read("package.json")
25
- new_package = package.gsub(/"version": "#{old_version}",/, "\"version\": \"#{new_version}\",")
26
- File.open("package.json", "w") { |file| file.puts new_package }
27
- puts "Updated package.json"
28
-
29
- # Update version.rb
30
- version_rb = File.read("lib/playbook/version.rb")
31
- new_version_rb = version_rb.gsub(/VERSION = "#{old_version}".freeze/, "VERSION = \"#{new_version}\".freeze")
32
- File.open("lib/playbook/version.rb", "w") { |file| file.puts new_version_rb }
33
- puts "Updated lib/playbook/version.rb"
34
-
35
- # Update gemfile.lock
36
- gemfile = File.read("Gemfile.lock")
37
- new_gemfile = gemfile.gsub(/playbook_ui \(#{Regexp.escape(old_version)}\)/, "playbook_ui (#{new_version})")
38
- File.open("Gemfile.lock", "w") { |file| file.puts new_gemfile }
39
- puts "Updated Gemfile.lock"
40
- puts "\n\n"
41
-
42
- puts "\nCreating dist files"
43
- `yarn release`
44
-
45
- puts "Commit your changes and create a PR to merge to master"
46
- end
47
- end
48
-
49
- desc "Publish to RubyGems, NPM, and Create a Tag"
50
- task push: :environment do
51
- version = Playbook::VERSION
52
- puts "You about to release version #{version}. Is that correct? (y/N)"
53
- input = STDIN.gets.chomp
54
- raise Nope unless input.downcase == "y"
55
-
56
- # RubyGems
57
- puts "\nCreating Gem..."
58
- `gem build playbook_ui.gemspec`
59
- puts "\nPushing to RubyGems..."
60
- `gem push playbook_ui-#{version}.gem`
61
- puts "\nPushed to RubyGems. Now lets clean up..."
62
- `rm -rf playbook_ui-*.gem`
63
-
64
- # NPM
65
- puts "\nGenerating distribution files"
66
- `docker-compose run web yarn release`
67
- puts "\nOrganizing distribution files"
68
- `rm dist/playbook-rails.css && mv dist/playbook-react.css dist/playbook.css`
69
- puts "\nCreating NPM package..."
70
- `npm pack`
71
- puts "\nPublishing to NPM..."
72
- `npm publish playbook-ui-#{version}.tgz`
73
- puts "\nPublished to NPM. Now lets clean up..."
74
- `rm -rf playbook-ui-*.tgz`
75
-
76
- # Tags
77
- puts "\nPushed to NPM. Now lets create a tag..."
78
- puts "\nWrite a brief tag release description. You can edit this later on GitHub."
79
- description = STDIN.gets.chomp
80
- puts "\nCreating Tag..."
81
- `git tag -a #{version} -m "#{description}"`
82
- puts "\nPushing Tag to GitHub..."
83
- `git push origin #{version}`
84
-
85
- puts "\n\n"
86
- puts "Complete! Don't forget to add your release notes https://github.com/powerhome/playbook/releases/tag/#{version}"
87
- end
88
- end
@@ -1,26 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require "webpacker"
4
-
5
- namespace :playbook do
6
- namespace :webpacker do
7
- desc "Install deps with yarn"
8
- task :yarn_install do
9
- Dir.chdir(File.join(__dir__, "../..")) do
10
- system "yarn install --no-progress --production"
11
- end
12
- end
13
-
14
- desc "Compile JavaScript packs using webpack for production with digests"
15
- task compile: %i[yarn_install environment] do
16
- ::Webpacker.with_node_env("production") do
17
- if Playbook.webpacker.commands.compile
18
- # Successful compilation!
19
- else
20
- # Failed compilation
21
- exit!
22
- end
23
- end
24
- end
25
- end
26
- end