playbook_ui 7.0.1.pre.alpha15 → 7.1.0.pre.alpha1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (32) 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 +5 -7
  4. data/app/pb_kits/playbook/pb_caption/docs/example.yml +0 -2
  5. data/app/pb_kits/playbook/pb_caption/docs/index.js +0 -1
  6. data/app/pb_kits/playbook/pb_time/_time.html.erb +20 -17
  7. data/app/pb_kits/playbook/pb_time/_time.jsx +27 -40
  8. data/app/pb_kits/playbook/pb_time/_time.scss +24 -4
  9. data/app/pb_kits/playbook/pb_time/docs/_time_align.jsx +1 -4
  10. data/app/pb_kits/playbook/pb_time/docs/_time_default.html.erb +11 -11
  11. data/app/pb_kits/playbook/pb_time/docs/_time_default.jsx +1 -13
  12. data/app/pb_kits/playbook/pb_time/docs/_time_sizes.jsx +1 -4
  13. data/app/pb_kits/playbook/pb_time/docs/_time_timestamp.jsx +1 -3
  14. data/app/pb_kits/playbook/pb_time/docs/_time_timezone.jsx +2 -7
  15. data/lib/playbook/version.rb +1 -1
  16. metadata +1 -17
  17. data/app/pb_kits/playbook/pb_caption/docs/_caption_block.html.erb +0 -11
  18. data/app/pb_kits/playbook/pb_caption/docs/_caption_block.jsx +0 -28
  19. data/lib/generators/kit/USAGE +0 -5
  20. data/lib/generators/kit/kit_generator.rb +0 -95
  21. data/lib/generators/kit/templates/kit_example_rails.erb.tt +0 -1
  22. data/lib/generators/kit/templates/kit_example_react.erb.tt +0 -10
  23. data/lib/generators/kit/templates/kit_example_yml.erb.tt +0 -9
  24. data/lib/generators/kit/templates/kit_html.erb.tt +0 -7
  25. data/lib/generators/kit/templates/kit_js.erb.tt +0 -1
  26. data/lib/generators/kit/templates/kit_jsx.erb.tt +0 -68
  27. data/lib/generators/kit/templates/kit_ruby.erb.tt +0 -11
  28. data/lib/generators/kit/templates/kit_ruby_spec.erb.tt +0 -11
  29. data/lib/generators/kit/templates/kit_scss.erb +0 -3
  30. data/lib/tasks/changelog.rake +0 -14
  31. data/lib/tasks/pb_release.rake +0 -88
  32. data/lib/tasks/playbook_tasks.rake +0 -26
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 56a4cb93a8661659aaab85d401b6bc2dc35fd48c4f79fdff2be38b38a1da8a49
4
- data.tar.gz: d7e29af88a980f946845c64c6585bf1c81bd4a96d8bd8cf3a7c77666b5c1ea1e
3
+ metadata.gz: a644ad03dc97f41965fc81a6eb5bbff2aa79a546b50bc6fb6bac8f08eef363d1
4
+ data.tar.gz: 0fe1ca166f29f9f46a805d29744dfe5d385ba04d6eadc77773416b2d374ae99d
5
5
  SHA512:
6
- metadata.gz: 6f3f323a335d3f1a6c440fd791854ddc6ff245d143c836d4d166fa512ca92bec43a02a01c7fbdd77a20059167bce1585300963df94b433d4f0e551530afe31b5
7
- data.tar.gz: c3dace91cad070dccb45fe050e51769b9c20510302dd694d88b0b74ffa8a183ca6065b226711086df0de26a9cef72bb3c5fd3ae3e8fe9948a27a24f2d8ebe98c
6
+ metadata.gz: f03035f54a4e33a6d87e3a011a56890ba0a1fc8f1e90f737e0735bdc3d301603b4de296dd43371870a07f0ad27628d3a3f82f9de7ae6ee9dc2689203a1ef6896
7
+ data.tar.gz: 80322b2825772cce53dfb4065d2dac261f9072aaec897d048d98b28ca2567de356c834b8fed975c66282168e0d3037ebd36665b7e4870f0314e95e19434e6833
@@ -5,7 +5,7 @@ module Playbook
5
5
  class Body
6
6
  include Playbook::Props
7
7
  include ActionView::Helpers
8
-
8
+
9
9
  partial "pb_body/body"
10
10
 
11
11
  prop :color, type: Playbook::Props::Enum,
@@ -1,7 +1,5 @@
1
- <%= content_tag(object.tag,
2
- aria: object.aria,
3
- id: object.id,
4
- data: object.data,
5
- class: object.classname) do %>
6
- <%= object.children.present? ? capture(&object.children) : object.text %>
7
- <% end %>
1
+ <%= content_tag(object.tag, object.text,
2
+ id: object.id,
3
+ data: object.data,
4
+ class: object.classname,
5
+ aria: object.aria) %>
@@ -1,7 +1,5 @@
1
1
  examples:
2
2
  rails:
3
3
  - caption_light: Default
4
- - caption_block: Block
5
4
  react:
6
5
  - caption_light: Default
7
- - caption_block: Block
@@ -1,3 +1,2 @@
1
1
  export { default as CaptionLight } from './_caption_light.jsx'
2
2
  export { default as CaptionVariants } from './_caption_variants.jsx'
3
- export { default as CaptionBlock } from './_caption_block.jsx'
@@ -2,36 +2,39 @@
2
2
  id: object.id,
3
3
  data: object.data,
4
4
  class: object.classname) do %>
5
- <%
6
- # convert deprecated prop values
7
- size = object.size
8
- size = "sm" if object.size == "xs"
9
- size = "md" if object.size == "lg"
10
- %>
5
+ <%
6
+ # convert deprecated prop values
7
+ size = object.size
8
+ size = "sm" if object.size == "xs"
9
+ size = "md" if object.size == "lg"
10
+ %>
11
11
  <% if size == "md" %>
12
12
  <% if object.show_icon %>
13
13
  <%= pb_rails("body", props: { color: "light", tag: "span"}) do %>
14
- <%= pb_rails("icon", props: { icon: "clock", fixed_width: true }) %>
14
+ <%= pb_rails("icon", props: { icon: "clock", fixed_width: true, size: "lg" }) %>
15
15
  <% end %>
16
16
  <% end %>
17
- <%= pb_rails("body", props: { tag: "span", text: object.format_time_string, classname: "pb_time" }) %>
17
+ <%= pb_rails("caption", props: { tag: "span", text: object.format_time_string, size: "lg" }) %>
18
18
  <% if object.show_timezone %>
19
- <%= pb_rails("body", props: { color: "light", tag: "span", text: object.pb_date_time.to_timezone.upcase }) %>
19
+ <%= content_tag(:span, class: "pb_time_timezone") do %>
20
+ <%= object.pb_date_time.to_timezone.upcase %>
21
+ <% end %>
20
22
  <% end %>
21
23
  <% else %>
22
24
  <% if object.show_icon %>
23
25
  <%= pb_rails("body", props: { color: "light", tag: "span"}) do %>
24
- <%= pb_rails("icon", props: { icon: "clock", fixed_width: true, size: "sm" }) %>
26
+ <%= pb_rails("icon", props: { icon: "clock", fixed_width: true }) %>
25
27
  <% end %>
26
28
  <% end %>
27
-
28
- <%= pb_rails("caption", props: { color: "light", tag: "span", text: object.format_time_string }) do %>
29
+ <%= pb_rails("body", props: { color: "light", tag: "span", text: object.format_time_string }) do %>
29
30
  <%= content_tag(:time, datetime: object.pb_date_time.to_iso) do %>
30
- <%= object.format_time_string %>
31
- <% if object.show_timezone %>
32
- <span class="pb_time_timezone">
33
- <%= object.pb_date_time.to_timezone.upcase %>
34
- </span>
31
+ <%= content_tag(:span) do %>
32
+ <%= object.format_time_string %>
33
+ <% if object.show_timezone %>
34
+ <%= content_tag(:span, class: "pb_time_timezone") do %>
35
+ <%= object.pb_date_time.to_timezone.upcase %>
36
+ <% end %>
37
+ <% end %>
35
38
  <% end %>
36
39
  <% end %>
37
40
  <% end %>
@@ -18,12 +18,11 @@ type TimeProps = {
18
18
  id?: string,
19
19
  showIcon?: boolean,
20
20
  size?: 'md' | 'sm',
21
- showTimezone?: boolean,
22
21
  timeZone?: string,
23
22
  }
24
23
 
25
24
  const Time = (props: TimeProps) => {
26
- const { align, className, date, showIcon, size, timeZone, showTimezone = true } = props
25
+ const { align, className, date, showIcon, size, timeZone } = props
27
26
  const classes = classnames(
28
27
  buildCss('pb_time_kit', align, size),
29
28
  globalProps(props),
@@ -34,53 +33,41 @@ const Time = (props: TimeProps) => {
34
33
 
35
34
  return (
36
35
  <div className={classes}>
37
- <If condition={showIcon}>
38
- <Body
39
- color="light"
40
- tag="span"
41
- >
42
- <Icon
43
- fixedWidth
44
- icon="clock"
45
- size={size === 'md' ? '' : 'sm'}
46
- />
47
- </Body>
48
- {' '}
49
- </If>
50
-
51
- <time dateTime={date}>
52
- <span>
53
- <If condition={size === 'md'}>
54
- <Body
55
- className="pb_time"
56
- tag="span"
57
- text={dateTimestamp.toTimeWithMeridian()}
36
+ <span className="pb_body_kit">
37
+ <If condition={showIcon}>
38
+ <Body
39
+ color="light"
40
+ tag="span"
41
+ >
42
+ <Icon
43
+ fixedWidth
44
+ icon="clock"
45
+ size={size === 'md' ? 'lg' : 'sm'}
58
46
  />
59
- {' '}
60
- <If condition={showTimezone}>
47
+ </Body>
48
+ {' '}
49
+ </If>
50
+ <time dateTime={date}>
51
+ <span>
52
+ <If condition={size !== 'md'}>
61
53
  <Body
62
54
  color="light"
63
55
  tag="span"
64
- text={dateTimestamp.toTimezone()}
56
+ text={dateTimestamp.toTimeWithMeridian()}
65
57
  />
66
- </If>
67
- <Else />
68
- <Caption
69
- color="light"
70
- tag="span"
71
- text={dateTimestamp.toTimeWithMeridian()}
72
- />
73
- {' '}
74
- <If condition={showTimezone}>
58
+ <Else />
75
59
  <Caption
76
- color="light"
60
+ size="lg"
77
61
  tag="span"
78
- text={dateTimestamp.toTimezone()}
62
+ text={dateTimestamp.toTimeWithMeridian()}
79
63
  />
80
64
  </If>
81
- </If>
82
- </span>
83
- </time>
65
+ <If condition={timeZone !== undefined}>
66
+ <span className="pb_time_timezone">{dateTimestamp.toTimezone()}</span>
67
+ </If>
68
+ </span>
69
+ </time>
70
+ </span>
84
71
  </div>
85
72
  )
86
73
  }
@@ -5,6 +5,8 @@
5
5
  @import "../pb_caption/caption";
6
6
 
7
7
  [class^=pb_time_kit] {
8
+ letter-spacing: $lspace_looser;
9
+ text-transform: uppercase;
8
10
  &[class*=_center] {
9
11
  text-align: center;
10
12
  }
@@ -13,6 +15,10 @@
13
15
  text-align: right;
14
16
  }
15
17
 
18
+ [class^=pb_body] {
19
+ font-weight: $bold !important;
20
+ }
21
+
16
22
  [class^=pb_time_timezone] {
17
23
  color: $text_lt_light;
18
24
  font-weight: $bold;
@@ -22,12 +28,26 @@
22
28
  }
23
29
  }
24
30
 
25
- &[class*=dark] {
26
- & * {
27
- @include caption_dark;
31
+ &[class*=_md] {
32
+ [class^=pb_caption_kit] {
33
+ color: $text_lt_default;
34
+ letter-spacing: $lspace_tight;
35
+ text-transform: capitalize;
36
+ }
37
+ [class^=pb_time_timezone] {
38
+ color: $text_lt_light;
39
+ font-size: $font-large !important;
40
+ font-weight: $regular;
41
+ letter-spacing: $lspace_tight;
28
42
  }
29
- .pb_time {
43
+ }
44
+
45
+ &.dark {
46
+ [class^=pb_caption_kit] {
30
47
  color: $text_dk_default;
31
48
  }
49
+ [class^=pb_body_kit] {
50
+ color: $text_dk_light;
51
+ }
32
52
  }
33
53
  }
@@ -1,27 +1,24 @@
1
1
  import React from 'react'
2
2
  import Time from '../_time.jsx'
3
3
 
4
- const TimeAlign = (props) => {
4
+ const TimeAlign = () => {
5
5
  return (
6
6
  <div>
7
7
  <Time
8
8
  date={new Date()}
9
9
  size="md"
10
- {...props}
11
10
  />
12
11
  <br />
13
12
  <Time
14
13
  align="center"
15
14
  date={new Date()}
16
15
  size="md"
17
- {...props}
18
16
  />
19
17
  <br />
20
18
  <Time
21
19
  align="right"
22
20
  date={new Date()}
23
21
  size="md"
24
- {...props}
25
22
  />
26
23
  </div>
27
24
  )
@@ -1,38 +1,38 @@
1
1
  <%= pb_rails("time", props: {
2
2
  show_timezone: false,
3
- time: Time.now
3
+ time: Time.now,
4
4
  }) %>
5
5
 
6
6
  <br>
7
7
 
8
8
  <%= pb_rails("time", props: {
9
9
  time: DateTime.now,
10
- timezone: "America/New_York"
10
+ timezone: "America/Chicago"
11
11
  }) %>
12
12
 
13
13
  <br>
14
14
 
15
15
  <%= pb_rails("time", props: {
16
+ time: "2012-08-02T15:49:29Z",
16
17
  show_icon: true,
17
18
  show_timezone: false,
18
- time: "2012-08-02T15:49:29Z",
19
19
  }) %>
20
20
 
21
21
  <br>
22
22
 
23
23
  <%= pb_rails("time", props: {
24
- show_icon: true,
25
24
  time: "2012-08-02T15:49:29Z",
26
- timezone: "America/New_York"
25
+ show_icon: true,
26
+ timezone: "America/Chicago"
27
27
  }) %>
28
28
 
29
- <br>
30
- <br>
29
+ <br>
30
+ <br>
31
31
 
32
- <%= pb_rails("time", props: {
33
- show_timezone: false,
34
- size: "md",
32
+ <%= pb_rails("time", props: {
35
33
  time: Time.now,
34
+ size: "md",
35
+ show_timezone: false,
36
36
  }) %>
37
37
 
38
38
  <br>
@@ -47,8 +47,8 @@
47
47
 
48
48
  <%= pb_rails("time", props: {
49
49
  show_icon: true,
50
- show_timezone: false,
51
50
  size: "md",
51
+ show_timezone: false,
52
52
  time: "2012-08-02T15:49:29Z",
53
53
  }) %>
54
54
 
@@ -1,56 +1,45 @@
1
1
  import React from 'react'
2
2
  import Time from '../_time.jsx'
3
3
 
4
- const TimeDefault = (props) => {
4
+ const TimeDefault = () => {
5
5
  return (
6
6
  <div>
7
7
  <Time
8
8
  date={new Date().getTime()}
9
- showTimezone={false}
10
- {...props}
11
9
  />
12
10
  <br />
13
11
  <Time
14
12
  date={new Date()}
15
13
  timeZone="America/New_York"
16
- {...props}
17
14
  />
18
15
  <br />
19
16
  <Time
20
17
  date={new Date().getTime()}
21
18
  showIcon
22
- showTimezone={false}
23
- {...props}
24
19
  />
25
20
  <br />
26
21
  <Time
27
22
  date={new Date()}
28
23
  showIcon
29
24
  timeZone="America/New_York"
30
- {...props}
31
25
  />
32
26
  <br />
33
27
  <br />
34
28
  <Time
35
29
  date={new Date()}
36
- showTimezone={false}
37
30
  size="md"
38
- {...props}
39
31
  />
40
32
  <br />
41
33
  <Time
42
34
  date={new Date()}
43
35
  size="md"
44
36
  timeZone="America/New_York"
45
- {...props}
46
37
  />
47
38
  <br />
48
39
  <Time
49
40
  date={new Date()}
50
41
  showIcon
51
- showTimezone={false}
52
42
  size="md"
53
- {...props}
54
43
  />
55
44
  <br />
56
45
  <Time
@@ -58,7 +47,6 @@ const TimeDefault = (props) => {
58
47
  showIcon
59
48
  size="md"
60
49
  timeZone="America/New_York"
61
- {...props}
62
50
  />
63
51
  </div>
64
52
  )
@@ -1,19 +1,16 @@
1
1
  import React, { Fragment } from 'react'
2
2
  import Time from '../_time.jsx'
3
3
 
4
- const TimeSizes = (props) => {
4
+ const TimeSizes = () => {
5
5
  return (
6
6
  <Fragment>
7
7
  <Time
8
8
  date={new Date()}
9
- {...props}
10
9
  />
11
10
  <br />
12
11
  <Time
13
12
  date={new Date()}
14
13
  size="md"
15
- timeZone="America/New_York"
16
- {...props}
17
14
  />
18
15
  </Fragment>
19
16
  )
@@ -1,13 +1,12 @@
1
1
  import React from 'react'
2
2
  import Time from '../_time.jsx'
3
3
 
4
- const TimeStamp = (props) => {
4
+ const TimeStamp = () => {
5
5
  return (
6
6
  <div>
7
7
  <Time
8
8
  date={new Date()}
9
9
  size="sm"
10
- {...props}
11
10
  />
12
11
 
13
12
  <br />
@@ -15,7 +14,6 @@ const TimeStamp = (props) => {
15
14
  <Time
16
15
  date={new Date().getTime()}
17
16
  size="sm"
18
- {...props}
19
17
  />
20
18
  </div>
21
19
  )
@@ -1,7 +1,7 @@
1
1
  import React from 'react'
2
2
  import Time from '../_time.jsx'
3
3
 
4
- const TimeTimezone = (props) => {
4
+ const TimeTimeZone = () => {
5
5
  const zones = {
6
6
  east: 'America/New_York',
7
7
  central: 'America/Chicago',
@@ -16,7 +16,6 @@ const TimeTimezone = (props) => {
16
16
  date={new Date()}
17
17
  size="md"
18
18
  timeZone={zones.east}
19
- {...props}
20
19
  />
21
20
 
22
21
  <br />
@@ -25,7 +24,6 @@ const TimeTimezone = (props) => {
25
24
  <Time
26
25
  date={new Date()}
27
26
  timeZone={zones.central}
28
- {...props}
29
27
  />
30
28
 
31
29
  <br />
@@ -34,7 +32,6 @@ const TimeTimezone = (props) => {
34
32
  <Time
35
33
  date={new Date()}
36
34
  timeZone={zones.mountain}
37
- {...props}
38
35
  />
39
36
 
40
37
  <br />
@@ -43,7 +40,6 @@ const TimeTimezone = (props) => {
43
40
  <Time
44
41
  date={new Date()}
45
42
  timeZone={zones.west}
46
- {...props}
47
43
  />
48
44
 
49
45
  <br />
@@ -52,11 +48,10 @@ const TimeTimezone = (props) => {
52
48
  <Time
53
49
  date={new Date()}
54
50
  timeZone={zones.asia}
55
- {...props}
56
51
  />
57
52
 
58
53
  </div>
59
54
  )
60
55
  }
61
56
 
62
- export default TimeTimezone
57
+ export default TimeTimeZone
@@ -1,4 +1,4 @@
1
1
  # frozen_string_literal: true
2
2
  module Playbook
3
- VERSION = "7.0.1.pre.alpha15"
3
+ VERSION = "7.1.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.0.1.pre.alpha15
4
+ version: 7.1.0.pre.alpha1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Power UX
@@ -530,8 +530,6 @@ 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
535
533
  - app/pb_kits/playbook/pb_caption/docs/_caption_light.html.erb
536
534
  - app/pb_kits/playbook/pb_caption/docs/_caption_light.jsx
537
535
  - app/pb_kits/playbook/pb_caption/docs/_caption_variants.html.erb
@@ -1838,24 +1836,10 @@ files:
1838
1836
  - app/pb_kits/playbook/vendor.js
1839
1837
  - fonts/fontawesome-min.js
1840
1838
  - fonts/regular-min.js
1841
- - lib/generators/kit/USAGE
1842
- - lib/generators/kit/kit_generator.rb
1843
- - lib/generators/kit/templates/kit_example_rails.erb.tt
1844
- - lib/generators/kit/templates/kit_example_react.erb.tt
1845
- - lib/generators/kit/templates/kit_example_yml.erb.tt
1846
- - lib/generators/kit/templates/kit_html.erb.tt
1847
- - lib/generators/kit/templates/kit_js.erb.tt
1848
- - lib/generators/kit/templates/kit_jsx.erb.tt
1849
- - lib/generators/kit/templates/kit_ruby.erb.tt
1850
- - lib/generators/kit/templates/kit_ruby_spec.erb.tt
1851
- - lib/generators/kit/templates/kit_scss.erb
1852
1839
  - lib/playbook.rb
1853
1840
  - lib/playbook/engine.rb
1854
1841
  - lib/playbook/version.rb
1855
1842
  - lib/playbook_ui.rb
1856
- - lib/tasks/changelog.rake
1857
- - lib/tasks/pb_release.rake
1858
- - lib/tasks/playbook_tasks.rake
1859
1843
  homepage: http://playbook.powerapp.cloud
1860
1844
  licenses:
1861
1845
  - MIT
@@ -1,11 +0,0 @@
1
- <%= pb_rails("caption") do %>
2
- Block
3
- <% end %>
4
-
5
- <%= pb_rails("caption", props: { size: 'lg' }) do %>
6
- Large Block
7
- <% end %>
8
-
9
- <%= pb_rails("caption", props: { size: 'xs' }) do %>
10
- Subcaption Block
11
- <% end %>
@@ -1,28 +0,0 @@
1
- import React from 'react'
2
- import { Caption } from '../../'
3
-
4
- const CaptionBlock = (props) => {
5
- return (
6
- <div>
7
- <Caption {...props}>
8
- {'Block'}
9
- </Caption>
10
-
11
- <Caption
12
- {...props}
13
- size="lg"
14
- >
15
- {'Large Block'}
16
- </Caption>
17
-
18
- <Caption
19
- {...props}
20
- size="xs"
21
- >
22
- {'Subcaption Block'}
23
- </Caption>
24
- </div>
25
- )
26
- }
27
-
28
- export default CaptionBlock
@@ -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.configure_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