playbook_ui 7.1.0.pre.alpha2 → 7.2.0

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 (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