playbook_ui 7.1.1 → 7.3.0.pre.alpha3

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 (78) hide show
  1. checksums.yaml +4 -4
  2. data/app/pb_kits/playbook/_playbook.scss +1 -0
  3. data/app/pb_kits/playbook/data/menu.yml +1 -0
  4. data/app/pb_kits/playbook/index.js +1 -0
  5. data/app/pb_kits/playbook/pb_bar_graph/bar_graph.rb +2 -1
  6. data/app/pb_kits/playbook/pb_body/body.rb +1 -1
  7. data/app/pb_kits/playbook/pb_caption/_caption.html.erb +7 -5
  8. data/app/pb_kits/playbook/pb_caption/docs/_caption_block.html.erb +11 -0
  9. data/app/pb_kits/playbook/pb_caption/docs/_caption_block.jsx +28 -0
  10. data/app/pb_kits/playbook/pb_caption/docs/example.yml +2 -0
  11. data/app/pb_kits/playbook/pb_caption/docs/index.js +1 -0
  12. data/app/pb_kits/playbook/pb_circle_chart/_circle_chart.jsx +1 -1
  13. data/app/pb_kits/playbook/pb_collapsible/_collapsible.html.erb +9 -0
  14. data/app/pb_kits/playbook/pb_collapsible/_collapsible.jsx +142 -0
  15. data/app/pb_kits/playbook/pb_collapsible/_collapsible.scss +17 -0
  16. data/app/pb_kits/playbook/pb_collapsible/child_kits/_collapsible_content.html.erb +7 -0
  17. data/app/pb_kits/playbook/pb_collapsible/child_kits/_collapsible_main.html.erb +16 -0
  18. data/app/pb_kits/playbook/pb_collapsible/collapsible.rb +15 -0
  19. data/app/pb_kits/playbook/pb_collapsible/collapsible_content.rb +21 -0
  20. data/app/pb_kits/playbook/pb_collapsible/collapsible_main.rb +24 -0
  21. data/app/pb_kits/playbook/pb_collapsible/docs/_collapsible_dark.html.erb +10 -0
  22. data/app/pb_kits/playbook/pb_collapsible/docs/_collapsible_dark.jsx +17 -0
  23. data/app/pb_kits/playbook/pb_collapsible/docs/_collapsible_default.html.erb +10 -0
  24. data/app/pb_kits/playbook/pb_collapsible/docs/_collapsible_default.jsx +17 -0
  25. data/app/pb_kits/playbook/pb_collapsible/docs/example.yml +9 -0
  26. data/app/pb_kits/playbook/pb_collapsible/docs/index.js +2 -0
  27. data/app/pb_kits/playbook/pb_collapsible/index.js +82 -0
  28. data/app/pb_kits/playbook/pb_gauge/_gauge.jsx +1 -1
  29. data/app/pb_kits/playbook/pb_line_graph/line_graph.rb +2 -1
  30. data/app/pb_kits/playbook/pb_nav/_item.html.erb +3 -0
  31. data/app/pb_kits/playbook/pb_nav/_item.jsx +14 -1
  32. data/app/pb_kits/playbook/pb_nav/_nav.jsx +3 -0
  33. data/app/pb_kits/playbook/pb_nav/_vertical_nav.scss +22 -3
  34. data/app/pb_kits/playbook/pb_nav/docs/_borderless_nav.html.erb +6 -0
  35. data/app/pb_kits/playbook/pb_nav/docs/_borderless_nav.jsx +29 -0
  36. data/app/pb_kits/playbook/pb_nav/docs/_with_img_nav.html.erb +7 -0
  37. data/app/pb_kits/playbook/pb_nav/docs/_with_img_nav.jsx +42 -0
  38. data/app/pb_kits/playbook/pb_nav/docs/_with_img_nav.md +1 -0
  39. data/app/pb_kits/playbook/pb_nav/docs/example.yml +5 -0
  40. data/app/pb_kits/playbook/pb_nav/docs/index.js +2 -0
  41. data/app/pb_kits/playbook/pb_nav/item.rb +1 -0
  42. data/app/pb_kits/playbook/pb_nav/nav.rb +6 -1
  43. data/app/pb_kits/playbook/pb_pill/_pill.scss +1 -0
  44. data/app/pb_kits/playbook/pb_section_separator/_section_separator.jsx +1 -3
  45. data/app/pb_kits/playbook/pb_section_separator/_section_separator.scss +26 -47
  46. data/app/pb_kits/playbook/pb_section_separator/_section_separator_mixin.scss +32 -0
  47. data/app/pb_kits/playbook/pb_section_separator/docs/_section_separator_line.jsx +6 -2
  48. data/app/pb_kits/playbook/pb_section_separator/docs/_section_separator_text.jsx +2 -1
  49. data/app/pb_kits/playbook/pb_section_separator/docs/_section_separator_text_background.jsx +2 -1
  50. data/app/pb_kits/playbook/pb_section_separator/docs/_section_separator_vertical.jsx +9 -3
  51. data/app/pb_kits/playbook/pb_section_separator/section_separator.rb +1 -1
  52. data/app/pb_kits/playbook/pb_selectable_card/_selectable_card.html.erb +4 -4
  53. data/app/pb_kits/playbook/pb_selectable_card/docs/_selectable_card_options.html.erb +16 -0
  54. data/app/pb_kits/playbook/pb_selectable_card/docs/example.yml +3 -2
  55. data/app/pb_kits/playbook/pb_selectable_card/selectable_card.rb +16 -9
  56. data/app/pb_kits/playbook/pb_selectable_card_icon/_selectable_card_icon.html.erb +3 -2
  57. data/app/pb_kits/playbook/pb_selectable_card_icon/docs/_selectable_card_icon_options.html.erb +16 -0
  58. data/app/pb_kits/playbook/pb_selectable_card_icon/docs/example.yml +4 -3
  59. data/app/pb_kits/playbook/pb_selectable_card_icon/selectable_card_icon.rb +3 -0
  60. data/app/pb_kits/playbook/pb_selectable_icon/_selectable_icon.html.erb +3 -3
  61. data/app/pb_kits/playbook/pb_selectable_icon/docs/_selectable_icon_options.html.erb +15 -0
  62. data/app/pb_kits/playbook/pb_selectable_icon/docs/example.yml +3 -2
  63. data/app/pb_kits/playbook/pb_selectable_icon/selectable_icon.rb +10 -0
  64. data/app/pb_kits/playbook/pb_time/_time.html.erb +17 -20
  65. data/app/pb_kits/playbook/pb_time/_time.jsx +40 -27
  66. data/app/pb_kits/playbook/pb_time/_time.scss +4 -24
  67. data/app/pb_kits/playbook/pb_time/docs/_time_align.jsx +4 -1
  68. data/app/pb_kits/playbook/pb_time/docs/_time_default.html.erb +11 -11
  69. data/app/pb_kits/playbook/pb_time/docs/_time_default.jsx +13 -1
  70. data/app/pb_kits/playbook/pb_time/docs/_time_sizes.jsx +4 -1
  71. data/app/pb_kits/playbook/pb_time/docs/_time_timestamp.jsx +3 -1
  72. data/app/pb_kits/playbook/pb_time/docs/_time_timezone.jsx +7 -2
  73. data/app/pb_kits/playbook/pb_typeahead/docs/_typeahead_default.html.erb +3 -2
  74. data/app/pb_kits/playbook/props.rb +1 -1
  75. data/app/pb_kits/playbook/props/base.rb +6 -4
  76. data/app/pb_kits/playbook/vendor.js +3 -0
  77. data/lib/playbook/version.rb +1 -1
  78. metadata +30 -4
@@ -23,6 +23,9 @@ module Playbook
23
23
  default: false
24
24
  prop :value
25
25
 
26
+ prop :input_options, type: Playbook::Props::Hash,
27
+ default: {}
28
+
26
29
  # Conditional rendering for input field
27
30
  prop :inputs, type: Playbook::Props::String,
28
31
  default: "enabled"
@@ -35,6 +38,13 @@ module Playbook
35
38
  input_id.present? ? input_id : name
36
39
  end
37
40
 
41
+ def additional_input_options
42
+ input_options.merge(
43
+ id: input_id_present,
44
+ disabled: disabled
45
+ )
46
+ end
47
+
38
48
  private
39
49
 
40
50
  def checked_class
@@ -2,39 +2,36 @@
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, size: "lg" }) %>
14
+ <%= pb_rails("icon", props: { icon: "clock", fixed_width: true }) %>
15
15
  <% end %>
16
16
  <% end %>
17
- <%= pb_rails("caption", props: { tag: "span", text: object.format_time_string, size: "lg" }) %>
17
+ <%= pb_rails("body", props: { tag: "span", text: object.format_time_string, classname: "pb_time" }) %>
18
18
  <% if object.show_timezone %>
19
- <%= content_tag(:span, class: "pb_time_timezone") do %>
20
- <%= object.pb_date_time.to_timezone.upcase %>
21
- <% end %>
19
+ <%= pb_rails("body", props: { color: "light", tag: "span", text: object.pb_date_time.to_timezone.upcase }) %>
22
20
  <% end %>
23
21
  <% else %>
24
22
  <% if object.show_icon %>
25
23
  <%= pb_rails("body", props: { color: "light", tag: "span"}) do %>
26
- <%= pb_rails("icon", props: { icon: "clock", fixed_width: true }) %>
24
+ <%= pb_rails("icon", props: { icon: "clock", fixed_width: true, size: "sm" }) %>
27
25
  <% end %>
28
26
  <% end %>
29
- <%= pb_rails("body", props: { color: "light", tag: "span", text: object.format_time_string }) do %>
27
+
28
+ <%= pb_rails("caption", props: { color: "light", tag: "span", text: object.format_time_string }) do %>
30
29
  <%= content_tag(:time, datetime: object.pb_date_time.to_iso) do %>
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 %>
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>
38
35
  <% end %>
39
36
  <% end %>
40
37
  <% end %>
@@ -18,11 +18,12 @@ type TimeProps = {
18
18
  id?: string,
19
19
  showIcon?: boolean,
20
20
  size?: 'md' | 'sm',
21
+ showTimezone?: boolean,
21
22
  timeZone?: string,
22
23
  }
23
24
 
24
25
  const Time = (props: TimeProps) => {
25
- const { align, className, date, showIcon, size, timeZone } = props
26
+ const { align, className, date, showIcon, size, timeZone, showTimezone = true } = props
26
27
  const classes = classnames(
27
28
  buildCss('pb_time_kit', align, size),
28
29
  globalProps(props),
@@ -33,41 +34,53 @@ const Time = (props: TimeProps) => {
33
34
 
34
35
  return (
35
36
  <div className={classes}>
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'}
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()}
46
58
  />
47
- </Body>
48
- {' '}
49
- </If>
50
- <time dateTime={date}>
51
- <span>
52
- <If condition={size !== 'md'}>
59
+ {' '}
60
+ <If condition={showTimezone}>
53
61
  <Body
54
62
  color="light"
55
63
  tag="span"
56
- text={dateTimestamp.toTimeWithMeridian()}
64
+ text={dateTimestamp.toTimezone()}
57
65
  />
58
- <Else />
66
+ </If>
67
+ <Else />
68
+ <Caption
69
+ color="light"
70
+ tag="span"
71
+ text={dateTimestamp.toTimeWithMeridian()}
72
+ />
73
+ {' '}
74
+ <If condition={showTimezone}>
59
75
  <Caption
60
- size="lg"
76
+ color="light"
61
77
  tag="span"
62
- text={dateTimestamp.toTimeWithMeridian()}
78
+ text={dateTimestamp.toTimezone()}
63
79
  />
64
80
  </If>
65
- <If condition={timeZone !== undefined}>
66
- <span className="pb_time_timezone">{dateTimestamp.toTimezone()}</span>
67
- </If>
68
- </span>
69
- </time>
70
- </span>
81
+ </If>
82
+ </span>
83
+ </time>
71
84
  </div>
72
85
  )
73
86
  }
@@ -5,8 +5,6 @@
5
5
  @import "../pb_caption/caption";
6
6
 
7
7
  [class^=pb_time_kit] {
8
- letter-spacing: $lspace_looser;
9
- text-transform: uppercase;
10
8
  &[class*=_center] {
11
9
  text-align: center;
12
10
  }
@@ -15,10 +13,6 @@
15
13
  text-align: right;
16
14
  }
17
15
 
18
- [class^=pb_body] {
19
- font-weight: $bold !important;
20
- }
21
-
22
16
  [class^=pb_time_timezone] {
23
17
  color: $text_lt_light;
24
18
  font-weight: $bold;
@@ -28,26 +22,12 @@
28
22
  }
29
23
  }
30
24
 
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;
25
+ &[class*=dark] {
26
+ & * {
27
+ @include caption_dark;
42
28
  }
43
- }
44
-
45
- &.dark {
46
- [class^=pb_caption_kit] {
29
+ .pb_time {
47
30
  color: $text_dk_default;
48
31
  }
49
- [class^=pb_body_kit] {
50
- color: $text_dk_light;
51
- }
52
32
  }
53
33
  }
@@ -1,24 +1,27 @@
1
1
  import React from 'react'
2
2
  import Time from '../_time.jsx'
3
3
 
4
- const TimeAlign = () => {
4
+ const TimeAlign = (props) => {
5
5
  return (
6
6
  <div>
7
7
  <Time
8
8
  date={new Date()}
9
9
  size="md"
10
+ {...props}
10
11
  />
11
12
  <br />
12
13
  <Time
13
14
  align="center"
14
15
  date={new Date()}
15
16
  size="md"
17
+ {...props}
16
18
  />
17
19
  <br />
18
20
  <Time
19
21
  align="right"
20
22
  date={new Date()}
21
23
  size="md"
24
+ {...props}
22
25
  />
23
26
  </div>
24
27
  )
@@ -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/Chicago"
10
+ timezone: "America/New_York"
11
11
  }) %>
12
12
 
13
13
  <br>
14
14
 
15
15
  <%= pb_rails("time", props: {
16
- time: "2012-08-02T15:49:29Z",
17
16
  show_icon: true,
18
17
  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
- time: "2012-08-02T15:49:29Z",
25
24
  show_icon: true,
26
- timezone: "America/Chicago"
25
+ time: "2012-08-02T15:49:29Z",
26
+ timezone: "America/New_York"
27
27
  }) %>
28
28
 
29
- <br>
30
- <br>
29
+ <br>
30
+ <br>
31
31
 
32
- <%= pb_rails("time", props: {
33
- time: Time.now,
34
- size: "md",
32
+ <%= pb_rails("time", props: {
35
33
  show_timezone: false,
34
+ size: "md",
35
+ time: Time.now,
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
- size: "md",
51
50
  show_timezone: false,
51
+ size: "md",
52
52
  time: "2012-08-02T15:49:29Z",
53
53
  }) %>
54
54
 
@@ -1,45 +1,56 @@
1
1
  import React from 'react'
2
2
  import Time from '../_time.jsx'
3
3
 
4
- const TimeDefault = () => {
4
+ const TimeDefault = (props) => {
5
5
  return (
6
6
  <div>
7
7
  <Time
8
8
  date={new Date().getTime()}
9
+ showTimezone={false}
10
+ {...props}
9
11
  />
10
12
  <br />
11
13
  <Time
12
14
  date={new Date()}
13
15
  timeZone="America/New_York"
16
+ {...props}
14
17
  />
15
18
  <br />
16
19
  <Time
17
20
  date={new Date().getTime()}
18
21
  showIcon
22
+ showTimezone={false}
23
+ {...props}
19
24
  />
20
25
  <br />
21
26
  <Time
22
27
  date={new Date()}
23
28
  showIcon
24
29
  timeZone="America/New_York"
30
+ {...props}
25
31
  />
26
32
  <br />
27
33
  <br />
28
34
  <Time
29
35
  date={new Date()}
36
+ showTimezone={false}
30
37
  size="md"
38
+ {...props}
31
39
  />
32
40
  <br />
33
41
  <Time
34
42
  date={new Date()}
35
43
  size="md"
36
44
  timeZone="America/New_York"
45
+ {...props}
37
46
  />
38
47
  <br />
39
48
  <Time
40
49
  date={new Date()}
41
50
  showIcon
51
+ showTimezone={false}
42
52
  size="md"
53
+ {...props}
43
54
  />
44
55
  <br />
45
56
  <Time
@@ -47,6 +58,7 @@ const TimeDefault = () => {
47
58
  showIcon
48
59
  size="md"
49
60
  timeZone="America/New_York"
61
+ {...props}
50
62
  />
51
63
  </div>
52
64
  )
@@ -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