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.
- checksums.yaml +4 -4
- data/app/pb_kits/playbook/pb_body/body.rb +1 -1
- data/app/pb_kits/playbook/pb_caption/_caption.html.erb +5 -7
- data/app/pb_kits/playbook/pb_caption/docs/example.yml +0 -2
- data/app/pb_kits/playbook/pb_caption/docs/index.js +0 -1
- data/app/pb_kits/playbook/pb_time/_time.html.erb +20 -17
- data/app/pb_kits/playbook/pb_time/_time.jsx +27 -40
- data/app/pb_kits/playbook/pb_time/_time.scss +24 -4
- data/app/pb_kits/playbook/pb_time/docs/_time_align.jsx +1 -4
- data/app/pb_kits/playbook/pb_time/docs/_time_default.html.erb +11 -11
- data/app/pb_kits/playbook/pb_time/docs/_time_default.jsx +1 -13
- data/app/pb_kits/playbook/pb_time/docs/_time_sizes.jsx +1 -4
- data/app/pb_kits/playbook/pb_time/docs/_time_timestamp.jsx +1 -3
- data/app/pb_kits/playbook/pb_time/docs/_time_timezone.jsx +2 -7
- data/lib/playbook/version.rb +1 -1
- metadata +1 -17
- data/app/pb_kits/playbook/pb_caption/docs/_caption_block.html.erb +0 -11
- data/app/pb_kits/playbook/pb_caption/docs/_caption_block.jsx +0 -28
- data/lib/generators/kit/USAGE +0 -5
- data/lib/generators/kit/kit_generator.rb +0 -95
- data/lib/generators/kit/templates/kit_example_rails.erb.tt +0 -1
- data/lib/generators/kit/templates/kit_example_react.erb.tt +0 -10
- data/lib/generators/kit/templates/kit_example_yml.erb.tt +0 -9
- data/lib/generators/kit/templates/kit_html.erb.tt +0 -7
- data/lib/generators/kit/templates/kit_js.erb.tt +0 -1
- data/lib/generators/kit/templates/kit_jsx.erb.tt +0 -68
- data/lib/generators/kit/templates/kit_ruby.erb.tt +0 -11
- data/lib/generators/kit/templates/kit_ruby_spec.erb.tt +0 -11
- data/lib/generators/kit/templates/kit_scss.erb +0 -3
- data/lib/tasks/changelog.rake +0 -14
- data/lib/tasks/pb_release.rake +0 -88
- data/lib/tasks/playbook_tasks.rake +0 -26
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: a644ad03dc97f41965fc81a6eb5bbff2aa79a546b50bc6fb6bac8f08eef363d1
|
4
|
+
data.tar.gz: 0fe1ca166f29f9f46a805d29744dfe5d385ba04d6eadc77773416b2d374ae99d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f03035f54a4e33a6d87e3a011a56890ba0a1fc8f1e90f737e0735bdc3d301603b4de296dd43371870a07f0ad27628d3a3f82f9de7ae6ee9dc2689203a1ef6896
|
7
|
+
data.tar.gz: 80322b2825772cce53dfb4065d2dac261f9072aaec897d048d98b28ca2567de356c834b8fed975c66282168e0d3037ebd36665b7e4870f0314e95e19434e6833
|
@@ -1,7 +1,5 @@
|
|
1
|
-
<%= content_tag(object.tag,
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
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) %>
|
@@ -2,36 +2,39 @@
|
|
2
2
|
id: object.id,
|
3
3
|
data: object.data,
|
4
4
|
class: object.classname) do %>
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
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("
|
17
|
+
<%= pb_rails("caption", props: { tag: "span", text: object.format_time_string, size: "lg" }) %>
|
18
18
|
<% if object.show_timezone %>
|
19
|
-
<%=
|
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
|
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
|
-
<%=
|
31
|
-
|
32
|
-
|
33
|
-
<%=
|
34
|
-
|
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
|
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
|
-
<
|
38
|
-
<
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
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
|
-
|
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.
|
56
|
+
text={dateTimestamp.toTimeWithMeridian()}
|
65
57
|
/>
|
66
|
-
|
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
|
-
|
60
|
+
size="lg"
|
77
61
|
tag="span"
|
78
|
-
text={dateTimestamp.
|
62
|
+
text={dateTimestamp.toTimeWithMeridian()}
|
79
63
|
/>
|
80
64
|
</If>
|
81
|
-
|
82
|
-
|
83
|
-
|
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*=
|
26
|
-
|
27
|
-
|
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
|
-
|
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 = (
|
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/
|
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
|
-
|
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 = (
|
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 = (
|
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 = (
|
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
|
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
|
57
|
+
export default TimeTimeZone
|
data/lib/playbook/version.rb
CHANGED
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.
|
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,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
|
data/lib/generators/kit/USAGE
DELETED
@@ -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 +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
|
-
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
|
data/lib/tasks/changelog.rake
DELETED
@@ -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
|
data/lib/tasks/pb_release.rake
DELETED
@@ -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
|