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,7 +1,7 @@
1
1
  <%= content_tag(:div,
2
2
  data: object.data,
3
3
  class: object.classname) do %>
4
-
4
+
5
5
  <%= pb_rails("selectable_card", props: {
6
6
  input_id: object.input_id,
7
7
  name: object.name,
@@ -10,7 +10,8 @@
10
10
  disabled: object.disabled,
11
11
  icon: object.checkmark,
12
12
  multi: object.multi,
13
- dark: object.dark
13
+ dark: object.dark,
14
+ input_options: object.input_options
14
15
  }) do %>
15
16
 
16
17
  <%= pb_rails("selectable_icon", props: {
@@ -0,0 +1,16 @@
1
+ <div class="pb--doc-demo-row">
2
+
3
+ <%= pb_rails("selectable_card_icon", props: {
4
+ icon: "chart-line",
5
+ title_text: "Quarterly Report",
6
+ body_text: "Export",
7
+ input_id: "card-icon-id",
8
+ checked: true,
9
+ input_options: {
10
+ class: "input-class",
11
+ name: "overwriting-name",
12
+ value: "overwriting-value",
13
+ }
14
+ }) %>
15
+
16
+ </div>
@@ -1,12 +1,13 @@
1
1
  examples:
2
-
2
+
3
3
  rails:
4
4
  - selectable_card_icon_default: Default
5
5
  - selectable_card_icon_checkmark: Checkmark
6
6
  - selectable_card_icon_single_select: Single Select
7
+ - selectable_card_icon_options: With Options
8
+
9
+
7
10
 
8
-
9
-
10
11
  react:
11
12
  - selectable_card_icon_default: Default
12
13
  - selectable_card_icon_checkmark: Checkmark
@@ -25,6 +25,9 @@ module Playbook
25
25
  default: false
26
26
  prop :value
27
27
 
28
+ prop :input_options, type: Playbook::Props::Hash,
29
+ default: {}
30
+
28
31
  def classname
29
32
  generate_classname("pb_selectable_card_icon_kit", checked_class, enabled_disabled_class)
30
33
  end
@@ -4,15 +4,15 @@
4
4
  class: object.classname) do %>
5
5
 
6
6
  <% if object.inputs == "disabled" %>
7
-
7
+
8
8
  <%= pb_rails("icon", props: { icon: object.icon, size: "2x" }) %>
9
9
  <%= pb_rails("title", props: { text: object.text, tag: "h4", size: 4 }) %>
10
10
 
11
11
  <% else %>
12
12
  <% if object.multi %>
13
- <%= check_box_tag object.name, object.value, object.checked, id: object.input_id, disabled: object.disabled %>
13
+ <%= check_box_tag(object.name, object.value, object.checked, object.additional_input_options) %>
14
14
  <% else %>
15
- <%= radio_button_tag object.name, object.value, object.checked, id: object.input_id, disabled: object.disabled %>
15
+ <%= radio_button_tag(object.name, object.value, object.checked, object.additional_input_options) %>
16
16
  <% end %>
17
17
 
18
18
  <label for="<%= object.input_id_present %>">
@@ -0,0 +1,15 @@
1
+ <div class="pb--doc-demo-row">
2
+
3
+ <%= pb_rails("selectable_icon", props: {
4
+ icon: "dollar-sign",
5
+ input_id: "options-id",
6
+ checked: true,
7
+ text: "US Dollar",
8
+ input_options: {
9
+ class: "input-class",
10
+ name: "overwriting-name",
11
+ value: "overwriting-value",
12
+ }
13
+ }) %>
14
+
15
+ </div>
@@ -1,10 +1,11 @@
1
1
  examples:
2
-
2
+
3
3
  rails:
4
4
  - selectable_icon_default: Default
5
5
  - selectable_icon_single_select: Single Select
6
+ - selectable_icon_options: With Options
7
+
6
8
 
7
-
8
9
  react:
9
10
  - selectable_icon_default: Default
10
11
  - selectable_icon_single_select: Single Select
@@ -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
  )