playbook_ui 7.1.0 → 7.3.0.pre.alpha1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (81) hide show
  1. checksums.yaml +4 -4
  2. data/app/pb_kits/playbook/pb_body/body.rb +1 -1
  3. data/app/pb_kits/playbook/pb_caption/_caption.html.erb +7 -5
  4. data/app/pb_kits/playbook/pb_caption/docs/_caption_block.html.erb +11 -0
  5. data/app/pb_kits/playbook/pb_caption/docs/_caption_block.jsx +28 -0
  6. data/app/pb_kits/playbook/pb_caption/docs/example.yml +2 -0
  7. data/app/pb_kits/playbook/pb_caption/docs/index.js +1 -0
  8. data/app/pb_kits/playbook/pb_date/_date.html.erb +64 -8
  9. data/app/pb_kits/playbook/pb_date/_date.jsx +115 -66
  10. data/app/pb_kits/playbook/pb_date/_date.scss +30 -0
  11. data/app/pb_kits/playbook/pb_date/date.rb +21 -9
  12. data/app/pb_kits/playbook/pb_date/docs/_date_alignment.html.erb +24 -0
  13. data/app/pb_kits/playbook/pb_date/docs/_date_alignment.jsx +35 -0
  14. data/app/pb_kits/playbook/pb_date/docs/_date_default.html.erb +21 -6
  15. data/app/pb_kits/playbook/pb_date/docs/_date_default.jsx +43 -12
  16. data/app/pb_kits/playbook/pb_date/docs/_date_variants.html.erb +27 -0
  17. data/app/pb_kits/playbook/pb_date/docs/_date_variants.jsx +43 -0
  18. data/app/pb_kits/playbook/pb_date/docs/example.yml +4 -0
  19. data/app/pb_kits/playbook/pb_date/docs/index.js +2 -0
  20. data/app/pb_kits/playbook/pb_nav/_item.html.erb +3 -0
  21. data/app/pb_kits/playbook/pb_nav/_item.jsx +14 -1
  22. data/app/pb_kits/playbook/pb_nav/_nav.jsx +3 -0
  23. data/app/pb_kits/playbook/pb_nav/_vertical_nav.scss +22 -3
  24. data/app/pb_kits/playbook/pb_nav/docs/_borderless_nav.html.erb +6 -0
  25. data/app/pb_kits/playbook/pb_nav/docs/_borderless_nav.jsx +29 -0
  26. data/app/pb_kits/playbook/pb_nav/docs/_with_img_nav.html.erb +7 -0
  27. data/app/pb_kits/playbook/pb_nav/docs/_with_img_nav.jsx +42 -0
  28. data/app/pb_kits/playbook/pb_nav/docs/_with_img_nav.md +1 -0
  29. data/app/pb_kits/playbook/pb_nav/docs/example.yml +5 -0
  30. data/app/pb_kits/playbook/pb_nav/docs/index.js +2 -0
  31. data/app/pb_kits/playbook/pb_nav/item.rb +1 -0
  32. data/app/pb_kits/playbook/pb_nav/nav.rb +6 -1
  33. data/app/pb_kits/playbook/pb_pill/_pill.scss +1 -0
  34. data/app/pb_kits/playbook/pb_section_separator/_section_separator.jsx +1 -3
  35. data/app/pb_kits/playbook/pb_section_separator/_section_separator.scss +26 -47
  36. data/app/pb_kits/playbook/pb_section_separator/_section_separator_mixin.scss +32 -0
  37. data/app/pb_kits/playbook/pb_section_separator/docs/_section_separator_line.jsx +6 -2
  38. data/app/pb_kits/playbook/pb_section_separator/docs/_section_separator_text.jsx +2 -1
  39. data/app/pb_kits/playbook/pb_section_separator/docs/_section_separator_text_background.jsx +2 -1
  40. data/app/pb_kits/playbook/pb_section_separator/docs/_section_separator_vertical.jsx +9 -3
  41. data/app/pb_kits/playbook/pb_section_separator/section_separator.rb +1 -1
  42. data/app/pb_kits/playbook/pb_selectable_card/_selectable_card.html.erb +4 -4
  43. data/app/pb_kits/playbook/pb_selectable_card/docs/_selectable_card_options.html.erb +16 -0
  44. data/app/pb_kits/playbook/pb_selectable_card/docs/example.yml +3 -2
  45. data/app/pb_kits/playbook/pb_selectable_card/selectable_card.rb +16 -9
  46. data/app/pb_kits/playbook/pb_selectable_card_icon/_selectable_card_icon.html.erb +3 -2
  47. data/app/pb_kits/playbook/pb_selectable_card_icon/docs/_selectable_card_icon_options.html.erb +16 -0
  48. data/app/pb_kits/playbook/pb_selectable_card_icon/docs/example.yml +4 -3
  49. data/app/pb_kits/playbook/pb_selectable_card_icon/selectable_card_icon.rb +3 -0
  50. data/app/pb_kits/playbook/pb_selectable_icon/_selectable_icon.html.erb +3 -3
  51. data/app/pb_kits/playbook/pb_selectable_icon/docs/_selectable_icon_options.html.erb +15 -0
  52. data/app/pb_kits/playbook/pb_selectable_icon/docs/example.yml +3 -2
  53. data/app/pb_kits/playbook/pb_selectable_icon/selectable_icon.rb +10 -0
  54. data/app/pb_kits/playbook/pb_time/_time.html.erb +17 -20
  55. data/app/pb_kits/playbook/pb_time/_time.jsx +40 -27
  56. data/app/pb_kits/playbook/pb_time/_time.scss +4 -24
  57. data/app/pb_kits/playbook/pb_time/docs/_time_align.jsx +4 -1
  58. data/app/pb_kits/playbook/pb_time/docs/_time_default.html.erb +11 -11
  59. data/app/pb_kits/playbook/pb_time/docs/_time_default.jsx +13 -1
  60. data/app/pb_kits/playbook/pb_time/docs/_time_sizes.jsx +4 -1
  61. data/app/pb_kits/playbook/pb_time/docs/_time_timestamp.jsx +3 -1
  62. data/app/pb_kits/playbook/pb_time/docs/_time_timezone.jsx +7 -2
  63. data/app/pb_kits/playbook/pb_typeahead/docs/_typeahead_default.html.erb +3 -2
  64. data/app/pb_kits/playbook/props.rb +1 -1
  65. data/app/pb_kits/playbook/props/base.rb +6 -4
  66. data/lib/playbook/version.rb +1 -1
  67. metadata +21 -19
  68. data/lib/generators/kit/USAGE +0 -5
  69. data/lib/generators/kit/kit_generator.rb +0 -95
  70. data/lib/generators/kit/templates/kit_example_rails.erb.tt +0 -1
  71. data/lib/generators/kit/templates/kit_example_react.erb.tt +0 -10
  72. data/lib/generators/kit/templates/kit_example_yml.erb.tt +0 -9
  73. data/lib/generators/kit/templates/kit_html.erb.tt +0 -7
  74. data/lib/generators/kit/templates/kit_js.erb.tt +0 -1
  75. data/lib/generators/kit/templates/kit_jsx.erb.tt +0 -68
  76. data/lib/generators/kit/templates/kit_ruby.erb.tt +0 -11
  77. data/lib/generators/kit/templates/kit_ruby_spec.erb.tt +0 -11
  78. data/lib/generators/kit/templates/kit_scss.erb +0 -3
  79. data/lib/tasks/changelog.rake +0 -14
  80. data/lib/tasks/pb_release.rake +0 -88
  81. data/lib/tasks/playbook_tasks.rake +0 -26
@@ -1,16 +1,19 @@
1
1
  import React, { Fragment } from 'react'
2
2
  import Time from '../_time.jsx'
3
3
 
4
- const TimeSizes = () => {
4
+ const TimeSizes = (props) => {
5
5
  return (
6
6
  <Fragment>
7
7
  <Time
8
8
  date={new Date()}
9
+ {...props}
9
10
  />
10
11
  <br />
11
12
  <Time
12
13
  date={new Date()}
13
14
  size="md"
15
+ timeZone="America/New_York"
16
+ {...props}
14
17
  />
15
18
  </Fragment>
16
19
  )
@@ -1,12 +1,13 @@
1
1
  import React from 'react'
2
2
  import Time from '../_time.jsx'
3
3
 
4
- const TimeStamp = () => {
4
+ const TimeStamp = (props) => {
5
5
  return (
6
6
  <div>
7
7
  <Time
8
8
  date={new Date()}
9
9
  size="sm"
10
+ {...props}
10
11
  />
11
12
 
12
13
  <br />
@@ -14,6 +15,7 @@ const TimeStamp = () => {
14
15
  <Time
15
16
  date={new Date().getTime()}
16
17
  size="sm"
18
+ {...props}
17
19
  />
18
20
  </div>
19
21
  )
@@ -1,7 +1,7 @@
1
1
  import React from 'react'
2
2
  import Time from '../_time.jsx'
3
3
 
4
- const TimeTimeZone = () => {
4
+ const TimeTimezone = (props) => {
5
5
  const zones = {
6
6
  east: 'America/New_York',
7
7
  central: 'America/Chicago',
@@ -16,6 +16,7 @@ const TimeTimeZone = () => {
16
16
  date={new Date()}
17
17
  size="md"
18
18
  timeZone={zones.east}
19
+ {...props}
19
20
  />
20
21
 
21
22
  <br />
@@ -24,6 +25,7 @@ const TimeTimeZone = () => {
24
25
  <Time
25
26
  date={new Date()}
26
27
  timeZone={zones.central}
28
+ {...props}
27
29
  />
28
30
 
29
31
  <br />
@@ -32,6 +34,7 @@ const TimeTimeZone = () => {
32
34
  <Time
33
35
  date={new Date()}
34
36
  timeZone={zones.mountain}
37
+ {...props}
35
38
  />
36
39
 
37
40
  <br />
@@ -40,6 +43,7 @@ const TimeTimeZone = () => {
40
43
  <Time
41
44
  date={new Date()}
42
45
  timeZone={zones.west}
46
+ {...props}
43
47
  />
44
48
 
45
49
  <br />
@@ -48,10 +52,11 @@ const TimeTimeZone = () => {
48
52
  <Time
49
53
  date={new Date()}
50
54
  timeZone={zones.asia}
55
+ {...props}
51
56
  />
52
57
 
53
58
  </div>
54
59
  )
55
60
  }
56
61
 
57
- export default TimeTimeZone
62
+ export default TimeTimezone
@@ -19,7 +19,8 @@
19
19
  name: tag(:slot, name: "name"),
20
20
  orientation: "horizontal",
21
21
  align: "left",
22
- avatar_url: "placeholder"
22
+ avatar_url: "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR4nGP6zwAAAgcBApocMXEAAAAASUVORK5CYII=",
23
+ avatar: true
23
24
  }) %>
24
25
  </template>
25
26
 
@@ -35,7 +36,7 @@
35
36
  event.detail.setResults((result.items || []).map((user) => {
36
37
  const wrapper = resultOptionTemplate.content.cloneNode(true)
37
38
  wrapper.querySelector('slot[name="name"]').replaceWith(user.login)
38
- wrapper.querySelector('img').setAttribute("src", user.avatar_url)
39
+ wrapper.querySelector('img').dataset.src = user.avatar_url
39
40
  return wrapper
40
41
  }))
41
42
  })
@@ -124,7 +124,7 @@ module Playbook
124
124
 
125
125
  def prop(name, type: Playbook::Props::String, **options)
126
126
  @props ||= {}
127
- @props[name] = type.new(**options)
127
+ @props[name] = type.new(options.merge(name: name, kit: self))
128
128
 
129
129
  define_method(name) { prop(name) }
130
130
  end
@@ -5,11 +5,13 @@ module Playbook
5
5
  class Error < StandardError; end
6
6
 
7
7
  class Base
8
- attr_reader :default, :required
8
+ attr_reader :default, :required, :name, :kit
9
9
 
10
- def initialize(default: nil, required: false)
10
+ def initialize(default: nil, required: false, name:, kit:)
11
11
  @default = default
12
12
  @required = required
13
+ @name = name
14
+ @kit = kit
13
15
  end
14
16
 
15
17
  def value(value)
@@ -17,10 +19,10 @@ module Playbook
17
19
  end
18
20
 
19
21
  def validate!(input_value)
20
- raise(Playbook::Props::Error, "#{inspect} is a required prop and needs to be provided a value") if required && input_value.nil?
22
+ raise(Playbook::Props::Error, "#{kit} prop '#{name}' of type #{inspect.class} is required and needs a value") if required && input_value.nil?
21
23
 
22
24
  validate(value(input_value)) ||
23
- raise(Playbook::Props::Error, "Invalid value (#{input_value.inspect}) for prop (#{inspect})")
25
+ raise(Playbook::Props::Error, "#{kit} has invalid value of '#{input_value.inspect}' for prop '#{name}' of type #{inspect.class}")
24
26
  end
25
27
 
26
28
  def validate(_value)
@@ -1,4 +1,4 @@
1
1
  # frozen_string_literal: true
2
2
  module Playbook
3
- VERSION = "7.1.0"
3
+ VERSION = "7.3.0.pre.alpha1"
4
4
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: playbook_ui
3
3
  version: !ruby/object:Gem::Version
4
- version: 7.1.0
4
+ version: 7.3.0.pre.alpha1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Power UX
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2020-10-09 00:00:00.000000000 Z
12
+ date: 2020-10-19 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: actionpack
@@ -530,6 +530,8 @@ files:
530
530
  - app/pb_kits/playbook/pb_caption/_caption.scss
531
531
  - app/pb_kits/playbook/pb_caption/_caption_mixin.scss
532
532
  - app/pb_kits/playbook/pb_caption/caption.rb
533
+ - app/pb_kits/playbook/pb_caption/docs/_caption_block.html.erb
534
+ - app/pb_kits/playbook/pb_caption/docs/_caption_block.jsx
533
535
  - app/pb_kits/playbook/pb_caption/docs/_caption_light.html.erb
534
536
  - app/pb_kits/playbook/pb_caption/docs/_caption_light.jsx
535
537
  - app/pb_kits/playbook/pb_caption/docs/_caption_variants.html.erb
@@ -666,10 +668,14 @@ files:
666
668
  - app/pb_kits/playbook/pb_date/_date.jsx
667
669
  - app/pb_kits/playbook/pb_date/_date.scss
668
670
  - app/pb_kits/playbook/pb_date/date.rb
671
+ - app/pb_kits/playbook/pb_date/docs/_date_alignment.html.erb
672
+ - app/pb_kits/playbook/pb_date/docs/_date_alignment.jsx
669
673
  - app/pb_kits/playbook/pb_date/docs/_date_default.html.erb
670
674
  - app/pb_kits/playbook/pb_date/docs/_date_default.jsx
671
675
  - app/pb_kits/playbook/pb_date/docs/_date_timezone.html.erb
672
676
  - app/pb_kits/playbook/pb_date/docs/_date_timezone.md
677
+ - app/pb_kits/playbook/pb_date/docs/_date_variants.html.erb
678
+ - app/pb_kits/playbook/pb_date/docs/_date_variants.jsx
673
679
  - app/pb_kits/playbook/pb_date/docs/_description.md
674
680
  - app/pb_kits/playbook/pb_date/docs/example.yml
675
681
  - app/pb_kits/playbook/pb_date/docs/index.js
@@ -1213,6 +1219,8 @@ files:
1213
1219
  - app/pb_kits/playbook/pb_nav/docs/_block_nav.jsx
1214
1220
  - app/pb_kits/playbook/pb_nav/docs/_block_no_title_nav.html.erb
1215
1221
  - app/pb_kits/playbook/pb_nav/docs/_block_no_title_nav.jsx
1222
+ - app/pb_kits/playbook/pb_nav/docs/_borderless_nav.html.erb
1223
+ - app/pb_kits/playbook/pb_nav/docs/_borderless_nav.jsx
1216
1224
  - app/pb_kits/playbook/pb_nav/docs/_default_nav.html.erb
1217
1225
  - app/pb_kits/playbook/pb_nav/docs/_default_nav.jsx
1218
1226
  - app/pb_kits/playbook/pb_nav/docs/_description.md
@@ -1228,6 +1236,9 @@ files:
1228
1236
  - app/pb_kits/playbook/pb_nav/docs/_subtle_with_icons_nav.jsx
1229
1237
  - app/pb_kits/playbook/pb_nav/docs/_with_icons_nav.html.erb
1230
1238
  - app/pb_kits/playbook/pb_nav/docs/_with_icons_nav.jsx
1239
+ - app/pb_kits/playbook/pb_nav/docs/_with_img_nav.html.erb
1240
+ - app/pb_kits/playbook/pb_nav/docs/_with_img_nav.jsx
1241
+ - app/pb_kits/playbook/pb_nav/docs/_with_img_nav.md
1231
1242
  - app/pb_kits/playbook/pb_nav/docs/example.yml
1232
1243
  - app/pb_kits/playbook/pb_nav/docs/index.js
1233
1244
  - app/pb_kits/playbook/pb_nav/item.rb
@@ -1374,6 +1385,7 @@ files:
1374
1385
  - app/pb_kits/playbook/pb_section_separator/_section_separator.html.erb
1375
1386
  - app/pb_kits/playbook/pb_section_separator/_section_separator.jsx
1376
1387
  - app/pb_kits/playbook/pb_section_separator/_section_separator.scss
1388
+ - app/pb_kits/playbook/pb_section_separator/_section_separator_mixin.scss
1377
1389
  - app/pb_kits/playbook/pb_section_separator/docs/_description.md
1378
1390
  - app/pb_kits/playbook/pb_section_separator/docs/_footer.md
1379
1391
  - app/pb_kits/playbook/pb_section_separator/docs/_section_separator_line.html.erb
@@ -1423,6 +1435,7 @@ files:
1423
1435
  - app/pb_kits/playbook/pb_selectable_card/docs/_selectable_card_default.html.erb
1424
1436
  - app/pb_kits/playbook/pb_selectable_card/docs/_selectable_card_default.jsx
1425
1437
  - app/pb_kits/playbook/pb_selectable_card/docs/_selectable_card_default.md
1438
+ - app/pb_kits/playbook/pb_selectable_card/docs/_selectable_card_options.html.erb
1426
1439
  - app/pb_kits/playbook/pb_selectable_card/docs/_selectable_card_single_select.html.erb
1427
1440
  - app/pb_kits/playbook/pb_selectable_card/docs/_selectable_card_single_select.jsx
1428
1441
  - app/pb_kits/playbook/pb_selectable_card/docs/_selectable_card_single_select.md
@@ -1436,6 +1449,7 @@ files:
1436
1449
  - app/pb_kits/playbook/pb_selectable_card_icon/docs/_selectable_card_icon_checkmark.jsx
1437
1450
  - app/pb_kits/playbook/pb_selectable_card_icon/docs/_selectable_card_icon_default.html.erb
1438
1451
  - app/pb_kits/playbook/pb_selectable_card_icon/docs/_selectable_card_icon_default.jsx
1452
+ - app/pb_kits/playbook/pb_selectable_card_icon/docs/_selectable_card_icon_options.html.erb
1439
1453
  - app/pb_kits/playbook/pb_selectable_card_icon/docs/_selectable_card_icon_single_select.html.erb
1440
1454
  - app/pb_kits/playbook/pb_selectable_card_icon/docs/_selectable_card_icon_single_select.jsx
1441
1455
  - app/pb_kits/playbook/pb_selectable_card_icon/docs/example.yml
@@ -1446,6 +1460,7 @@ files:
1446
1460
  - app/pb_kits/playbook/pb_selectable_icon/_selectable_icon.scss
1447
1461
  - app/pb_kits/playbook/pb_selectable_icon/docs/_selectable_icon_default.html.erb
1448
1462
  - app/pb_kits/playbook/pb_selectable_icon/docs/_selectable_icon_default.jsx
1463
+ - app/pb_kits/playbook/pb_selectable_icon/docs/_selectable_icon_options.html.erb
1449
1464
  - app/pb_kits/playbook/pb_selectable_icon/docs/_selectable_icon_single_select.html.erb
1450
1465
  - app/pb_kits/playbook/pb_selectable_icon/docs/_selectable_icon_single_select.jsx
1451
1466
  - app/pb_kits/playbook/pb_selectable_icon/docs/example.yml
@@ -1836,24 +1851,10 @@ files:
1836
1851
  - app/pb_kits/playbook/vendor.js
1837
1852
  - fonts/fontawesome-min.js
1838
1853
  - fonts/regular-min.js
1839
- - lib/generators/kit/USAGE
1840
- - lib/generators/kit/kit_generator.rb
1841
- - lib/generators/kit/templates/kit_example_rails.erb.tt
1842
- - lib/generators/kit/templates/kit_example_react.erb.tt
1843
- - lib/generators/kit/templates/kit_example_yml.erb.tt
1844
- - lib/generators/kit/templates/kit_html.erb.tt
1845
- - lib/generators/kit/templates/kit_js.erb.tt
1846
- - lib/generators/kit/templates/kit_jsx.erb.tt
1847
- - lib/generators/kit/templates/kit_ruby.erb.tt
1848
- - lib/generators/kit/templates/kit_ruby_spec.erb.tt
1849
- - lib/generators/kit/templates/kit_scss.erb
1850
1854
  - lib/playbook.rb
1851
1855
  - lib/playbook/engine.rb
1852
1856
  - lib/playbook/version.rb
1853
1857
  - lib/playbook_ui.rb
1854
- - lib/tasks/changelog.rake
1855
- - lib/tasks/pb_release.rake
1856
- - lib/tasks/playbook_tasks.rake
1857
1858
  homepage: http://playbook.powerapp.cloud
1858
1859
  licenses:
1859
1860
  - MIT
@@ -1869,11 +1870,12 @@ required_ruby_version: !ruby/object:Gem::Requirement
1869
1870
  version: '0'
1870
1871
  required_rubygems_version: !ruby/object:Gem::Requirement
1871
1872
  requirements:
1872
- - - ">="
1873
+ - - ">"
1873
1874
  - !ruby/object:Gem::Version
1874
- version: '0'
1875
+ version: 1.3.1
1875
1876
  requirements: []
1876
- rubygems_version: 3.1.4
1877
+ rubyforge_project:
1878
+ rubygems_version: 2.7.3
1877
1879
  signing_key:
1878
1880
  specification_version: 4
1879
1881
  summary: Playbook Design System
@@ -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 %>