playbook_ui 7.4.0.pre.alpha6 → 7.4.1

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 (128) hide show
  1. checksums.yaml +4 -4
  2. data/app/assets/images/github-brands.svg +1 -0
  3. data/app/assets/images/landing-background.svg +36 -0
  4. data/app/assets/images/landing-image.svg +203 -0
  5. data/app/assets/images/{pb.logo.svg → pb-logo.svg} +2 -2
  6. data/app/assets/images/pb-white-logo.svg +15 -0
  7. data/app/pb_kits/playbook/_playbook.scss +3 -1
  8. data/app/pb_kits/playbook/data/menu.yml +2 -2
  9. data/app/pb_kits/playbook/index.js +2 -2
  10. data/app/pb_kits/playbook/pb_background/_background.html.erb +14 -0
  11. data/app/pb_kits/playbook/pb_background/_background.jsx +63 -0
  12. data/app/pb_kits/playbook/pb_background/_background.scss +35 -0
  13. data/app/pb_kits/playbook/pb_background/background.rb +35 -0
  14. data/app/pb_kits/playbook/pb_background/docs/_background_dark.html.erb +3 -0
  15. data/app/pb_kits/playbook/pb_background/docs/_background_dark.jsx +13 -0
  16. data/app/pb_kits/playbook/pb_background/docs/_background_gradient.html.erb +3 -0
  17. data/app/pb_kits/playbook/pb_background/docs/_background_gradient.jsx +13 -0
  18. data/app/pb_kits/playbook/pb_background/docs/_background_image.html.erb +13 -0
  19. data/app/pb_kits/playbook/pb_background/docs/_background_image.jsx +30 -0
  20. data/app/pb_kits/playbook/pb_background/docs/_background_light.html.erb +3 -0
  21. data/app/pb_kits/playbook/pb_background/docs/_background_light.jsx +13 -0
  22. data/app/pb_kits/playbook/pb_background/docs/_background_white.html.erb +3 -0
  23. data/app/pb_kits/playbook/pb_background/docs/_background_white.jsx +14 -0
  24. data/app/pb_kits/playbook/pb_background/docs/_description.md +1 -0
  25. data/app/pb_kits/playbook/pb_background/docs/example.yml +15 -0
  26. data/app/pb_kits/playbook/pb_background/docs/index.js +6 -0
  27. data/app/pb_kits/playbook/pb_checkbox/_checkbox.html.erb +2 -3
  28. data/app/pb_kits/playbook/pb_checkbox/_checkbox.jsx +1 -2
  29. data/app/pb_kits/playbook/pb_checkbox/checkbox.rb +1 -4
  30. data/app/pb_kits/playbook/pb_checkbox/docs/_checkbox_default.html.erb +2 -5
  31. data/app/pb_kits/playbook/pb_date/_date.html.erb +64 -8
  32. data/app/pb_kits/playbook/pb_date/_date.jsx +115 -66
  33. data/app/pb_kits/playbook/pb_date/_date.scss +30 -0
  34. data/app/pb_kits/playbook/pb_date/date.rb +20 -9
  35. data/app/pb_kits/playbook/pb_date/docs/_date_alignment.html.erb +24 -0
  36. data/app/pb_kits/playbook/pb_date/docs/_date_alignment.jsx +35 -0
  37. data/app/pb_kits/playbook/pb_date/docs/_date_default.html.erb +21 -6
  38. data/app/pb_kits/playbook/pb_date/docs/_date_default.jsx +43 -12
  39. data/app/pb_kits/playbook/pb_date/docs/_date_variants.html.erb +27 -0
  40. data/app/pb_kits/playbook/pb_date/docs/_date_variants.jsx +43 -0
  41. data/app/pb_kits/playbook/pb_date/docs/example.yml +4 -0
  42. data/app/pb_kits/playbook/pb_date/docs/index.js +2 -0
  43. data/app/pb_kits/playbook/pb_date_picker/_date_picker.html.erb +19 -14
  44. data/app/pb_kits/playbook/pb_date_time/_date_time.html.erb +31 -0
  45. data/app/pb_kits/playbook/pb_date_time/_date_time.jsx +73 -0
  46. data/app/pb_kits/playbook/pb_date_time/_date_time.scss +26 -0
  47. data/app/pb_kits/playbook/pb_date_time/date_time.rb +29 -0
  48. data/app/pb_kits/playbook/pb_date_time/docs/_date_time_align.html.erb +17 -0
  49. data/app/pb_kits/playbook/pb_date_time/docs/_date_time_align.jsx +35 -0
  50. data/app/pb_kits/playbook/pb_date_time/docs/_date_time_default.html.erb +20 -0
  51. data/app/pb_kits/playbook/pb_date_time/docs/_date_time_default.jsx +38 -0
  52. data/app/pb_kits/playbook/pb_date_time/docs/_date_time_size.html.erb +26 -0
  53. data/app/pb_kits/playbook/pb_date_time/docs/_date_time_size.jsx +75 -0
  54. data/app/pb_kits/playbook/pb_date_time/docs/_description.md +1 -0
  55. data/app/pb_kits/playbook/pb_date_time/docs/example.yml +11 -0
  56. data/app/pb_kits/playbook/pb_date_time/docs/index.js +3 -0
  57. data/app/pb_kits/playbook/pb_flex/_flex.jsx +1 -1
  58. data/app/pb_kits/playbook/pb_flex/_flex.scss +4 -0
  59. data/app/pb_kits/playbook/pb_flex/flex.rb +1 -1
  60. data/app/pb_kits/playbook/pb_form/docs/_form_form_with.html.erb +52 -1
  61. data/app/pb_kits/playbook/pb_form/docs/_form_form_with_validate.html.erb +1 -1
  62. data/app/pb_kits/playbook/pb_form/docs/_form_simple_form.html.erb +1 -1
  63. data/app/pb_kits/playbook/pb_form/docs/_form_simple_form_validate.html.erb +1 -1
  64. data/app/pb_kits/playbook/pb_form/form_builder/date_picker_field.rb +19 -1
  65. data/app/pb_kits/playbook/pb_home_address_street/home_address_street.rb +1 -1
  66. data/app/pb_kits/playbook/pb_list/_list.jsx +2 -9
  67. data/app/pb_kits/playbook/pb_progress_step/_progress_step.jsx +3 -1
  68. data/app/pb_kits/playbook/pb_progress_step/_progress_step.scss +13 -4
  69. data/app/pb_kits/playbook/pb_progress_step/_progress_step_item.html.erb +1 -1
  70. data/app/pb_kits/playbook/pb_progress_step/_progress_step_item.jsx +5 -7
  71. data/app/pb_kits/playbook/pb_progress_step/docs/_progress_step_custom_icon.html.erb +12 -0
  72. data/app/pb_kits/playbook/pb_progress_step/docs/_progress_step_tracker_click_events.jsx +48 -0
  73. data/app/pb_kits/playbook/pb_progress_step/docs/example.yml +2 -0
  74. data/app/pb_kits/playbook/pb_progress_step/docs/index.js +1 -0
  75. data/app/pb_kits/playbook/pb_progress_step/progress_step.rb +5 -3
  76. data/app/pb_kits/playbook/pb_progress_step/progress_step_item.rb +6 -0
  77. data/app/pb_kits/playbook/pb_radio/_radio.jsx +3 -0
  78. data/app/pb_kits/playbook/pb_timestamp/_timestamp.html.erb +13 -1
  79. data/app/pb_kits/playbook/pb_timestamp/_timestamp.jsx +96 -20
  80. data/app/pb_kits/playbook/pb_timestamp/_timestamp.scss +12 -1
  81. data/app/pb_kits/playbook/pb_timestamp/docs/_timestamp_align.html.erb +69 -0
  82. data/app/pb_kits/playbook/pb_timestamp/docs/_timestamp_align.jsx +91 -0
  83. data/app/pb_kits/playbook/pb_timestamp/docs/_timestamp_default.html.erb +21 -1
  84. data/app/pb_kits/playbook/pb_timestamp/docs/_timestamp_default.jsx +31 -4
  85. data/app/pb_kits/playbook/pb_timestamp/docs/_timestamp_elapsed.html.erb +14 -0
  86. data/app/pb_kits/playbook/pb_timestamp/docs/_timestamp_elapsed.jsx +27 -0
  87. data/app/pb_kits/playbook/pb_timestamp/docs/_timestamp_elapsed_align.html.erb +54 -0
  88. data/app/pb_kits/playbook/pb_timestamp/docs/_timestamp_elapsed_align.jsx +73 -0
  89. data/app/pb_kits/playbook/pb_timestamp/docs/_timestamp_timezones.html.erb +59 -0
  90. data/app/pb_kits/playbook/pb_timestamp/docs/_timestamp_timezones.jsx +74 -0
  91. data/app/pb_kits/playbook/pb_timestamp/docs/_timestamp_timezones_align.html.erb +177 -0
  92. data/app/pb_kits/playbook/pb_timestamp/docs/_timestamp_timezones_align.jsx +209 -0
  93. data/app/pb_kits/playbook/pb_timestamp/docs/_timestamp_updated.html.erb +35 -0
  94. data/app/pb_kits/playbook/pb_timestamp/docs/_timestamp_updated.jsx +51 -0
  95. data/app/pb_kits/playbook/pb_timestamp/docs/_timestamp_updated_align.html.erb +123 -0
  96. data/app/pb_kits/playbook/pb_timestamp/docs/_timestamp_updated_align.jsx +146 -0
  97. data/app/pb_kits/playbook/pb_timestamp/docs/example.yml +14 -0
  98. data/app/pb_kits/playbook/pb_timestamp/docs/index.js +7 -0
  99. data/app/pb_kits/playbook/pb_timestamp/timestamp.rb +67 -1
  100. data/app/pb_kits/playbook/pb_tooltip/_tooltip.scss +46 -19
  101. data/app/pb_kits/playbook/pb_tooltip/docs/_tooltip_default.html.erb +46 -10
  102. data/app/pb_kits/playbook/pb_tooltip/docs/_tooltip_white.html.erb +4 -4
  103. data/app/pb_kits/playbook/pb_tooltip/tooltip.rb +3 -2
  104. data/app/pb_kits/playbook/pb_typeahead/_typeahead.jsx +14 -2
  105. data/app/pb_kits/playbook/pb_typeahead/components/ClearIndicator.jsx +20 -0
  106. data/app/pb_kits/playbook/pb_typeahead/components/MultiValue.jsx +8 -15
  107. data/app/pb_kits/playbook/pb_typeahead/components/Option.jsx +1 -6
  108. data/app/pb_kits/playbook/pb_typeahead/docs/_typeahead_with_pills.html.erb +10 -4
  109. data/app/pb_kits/playbook/pb_typeahead/docs/_typeahead_with_pills.md +20 -4
  110. data/app/pb_kits/playbook/pb_typeahead/typeahead.rb +4 -0
  111. data/lib/playbook/version.rb +1 -1
  112. metadata +60 -22
  113. data/app/assets/images/clark.jpg +0 -0
  114. data/app/assets/images/giant.jpg +0 -0
  115. data/app/pb_kits/playbook/pb_selectable_list/_item.jsx +0 -90
  116. data/app/pb_kits/playbook/pb_selectable_list/_selectable_list.html.erb +0 -11
  117. data/app/pb_kits/playbook/pb_selectable_list/_selectable_list.jsx +0 -47
  118. data/app/pb_kits/playbook/pb_selectable_list/_selectable_list.scss +0 -17
  119. data/app/pb_kits/playbook/pb_selectable_list/_selectable_list_item.html.erb +0 -18
  120. data/app/pb_kits/playbook/pb_selectable_list/docs/_description.md +0 -3
  121. data/app/pb_kits/playbook/pb_selectable_list/docs/_selectable_list_checkbox.html.erb +0 -30
  122. data/app/pb_kits/playbook/pb_selectable_list/docs/_selectable_list_checkbox.jsx +0 -32
  123. data/app/pb_kits/playbook/pb_selectable_list/docs/_selectable_list_radio.html.erb +0 -30
  124. data/app/pb_kits/playbook/pb_selectable_list/docs/_selectable_list_radio.jsx +0 -32
  125. data/app/pb_kits/playbook/pb_selectable_list/docs/example.yml +0 -12
  126. data/app/pb_kits/playbook/pb_selectable_list/docs/index.js +0 -2
  127. data/app/pb_kits/playbook/pb_selectable_list/selectable_list.rb +0 -24
  128. data/app/pb_kits/playbook/pb_selectable_list/selectable_list_item.rb +0 -28
@@ -0,0 +1,35 @@
1
+ <%= pb_rails("timestamp", props: {
2
+ timestamp: DateTime.now,
3
+ variant: "updated",
4
+ show_user: true,
5
+ text: "Maricris Nonato"
6
+ }) %>
7
+
8
+ <br>
9
+
10
+ <%= pb_rails("timestamp", props: {
11
+ timestamp: DateTime.now,
12
+ variant: "updated",
13
+ show_user: false
14
+ }) %>
15
+
16
+ <br><br>
17
+
18
+ <%= pb_rails("timestamp", props: {
19
+ timestamp: DateTime.now,
20
+ variant: "updated",
21
+ show_user: true,
22
+ show_timezone: true,
23
+ text: "Maricris Nonato",
24
+ timezone: "America/New_York"
25
+ }) %>
26
+
27
+ <br>
28
+
29
+ <%= pb_rails("timestamp", props: {
30
+ timestamp: DateTime.now,
31
+ variant: "updated",
32
+ show_user: false,
33
+ show_timezone: true,
34
+ timezone: "America/New_York"
35
+ }) %>
@@ -0,0 +1,51 @@
1
+ import React from 'react'
2
+ import Timestamp from '../_timestamp.jsx'
3
+
4
+ const TimestampUpdated = (props) => {
5
+ return (
6
+ <div>
7
+ <Timestamp
8
+ showUser="true"
9
+ text="Maricris Nonato"
10
+ timestamp={new Date().getTime()}
11
+ variant="updated"
12
+ {...props}
13
+ />
14
+
15
+ <br />
16
+
17
+ <Timestamp
18
+ showUser="false"
19
+ timestamp={new Date().getTime()}
20
+ variant="updated"
21
+ {...props}
22
+ />
23
+
24
+ <br />
25
+ <br />
26
+
27
+ <Timestamp
28
+ showTimezone="true"
29
+ showUser="true"
30
+ text="Maricris Nonato"
31
+ timestamp={new Date().getTime()}
32
+ timezone="America/New_York"
33
+ variant="updated"
34
+ {...props}
35
+ />
36
+
37
+ <br />
38
+
39
+ <Timestamp
40
+ showTimezone="true"
41
+ showUser="false"
42
+ timestamp={new Date().getTime()}
43
+ timezone="America/New_York"
44
+ variant="updated"
45
+ {...props}
46
+ />
47
+ </div>
48
+ )
49
+ }
50
+
51
+ export default TimestampUpdated
@@ -0,0 +1,123 @@
1
+ <%= pb_rails("timestamp", props: {
2
+ timestamp: DateTime.now,
3
+ variant: "updated",
4
+ align: "left",
5
+ show_user: true,
6
+ text: "Maricris Nonato"
7
+ }) %>
8
+
9
+ <br>
10
+
11
+ <%= pb_rails("timestamp", props: {
12
+ timestamp: DateTime.now,
13
+ variant: "updated",
14
+ align: "left",
15
+ show_user: false
16
+ }) %>
17
+
18
+ <br>
19
+
20
+ <%= pb_rails("timestamp", props: {
21
+ timestamp: DateTime.now,
22
+ variant: "updated",
23
+ align: "left",
24
+ show_user: true,
25
+ show_timezone: true,
26
+ text: "Maricris Nonato",
27
+ timezone: "America/New_York"
28
+ }) %>
29
+
30
+ <br>
31
+
32
+ <%= pb_rails("timestamp", props: {
33
+ timestamp: DateTime.now,
34
+ variant: "updated",
35
+ align: "left",
36
+ show_user: false,
37
+ show_timezone: true,
38
+ timezone: "America/New_York"
39
+ }) %>
40
+
41
+ <br><br>
42
+
43
+ <%= pb_rails("timestamp", props: {
44
+ timestamp: DateTime.now,
45
+ variant: "updated",
46
+ align: "center",
47
+ show_user: true,
48
+ text: "Maricris Nonato"
49
+ }) %>
50
+
51
+ <br>
52
+
53
+ <%= pb_rails("timestamp", props: {
54
+ timestamp: DateTime.now,
55
+ variant: "updated",
56
+ align: "center",
57
+ show_user: false
58
+ }) %>
59
+
60
+ <br>
61
+
62
+ <%= pb_rails("timestamp", props: {
63
+ timestamp: DateTime.now,
64
+ variant: "updated",
65
+ align: "center",
66
+ show_user: true,
67
+ show_timezone: true,
68
+ text: "Maricris Nonato",
69
+ timezone: "America/New_York"
70
+ }) %>
71
+
72
+ <br>
73
+
74
+ <%= pb_rails("timestamp", props: {
75
+ timestamp: DateTime.now,
76
+ variant: "updated",
77
+ align: "center",
78
+ show_user: false,
79
+ show_timezone: true,
80
+ timezone: "America/New_York"
81
+ }) %>
82
+
83
+ <br><br>
84
+
85
+ <%= pb_rails("timestamp", props: {
86
+ timestamp: DateTime.now,
87
+ variant: "updated",
88
+ align: "right",
89
+ show_user: true,
90
+ text: "Maricris Nonato"
91
+ }) %>
92
+
93
+ <br>
94
+
95
+ <%= pb_rails("timestamp", props: {
96
+ timestamp: DateTime.now,
97
+ variant: "updated",
98
+ align: "right",
99
+ show_user: false
100
+ }) %>
101
+
102
+ <br>
103
+
104
+ <%= pb_rails("timestamp", props: {
105
+ timestamp: DateTime.now,
106
+ variant: "updated",
107
+ align: "right",
108
+ show_user: true,
109
+ show_timezone: true,
110
+ text: "Maricris Nonato",
111
+ timezone: "America/New_York"
112
+ }) %>
113
+
114
+ <br>
115
+
116
+ <%= pb_rails("timestamp", props: {
117
+ timestamp: DateTime.now,
118
+ variant: "updated",
119
+ align: "right",
120
+ show_user: false,
121
+ show_timezone: true,
122
+ timezone: "America/New_York"
123
+ }) %>
@@ -0,0 +1,146 @@
1
+ import React from 'react'
2
+ import Timestamp from '../_timestamp.jsx'
3
+
4
+ const TimestampUpdatedAlign = (props) => {
5
+ return (
6
+ <div>
7
+ <Timestamp
8
+ align="left"
9
+ showUser="true"
10
+ text="Maricris Nonato"
11
+ timestamp={new Date().getTime()}
12
+ variant="updated"
13
+ {...props}
14
+ />
15
+
16
+ <br />
17
+
18
+ <Timestamp
19
+ align="left"
20
+ showUser="false"
21
+ timestamp={new Date().getTime()}
22
+ variant="updated"
23
+ {...props}
24
+ />
25
+
26
+ <br />
27
+
28
+ <Timestamp
29
+ showTimezone="true"
30
+ showUser="true"
31
+ text="Maricris Nonato"
32
+ timestamp={new Date().getTime()}
33
+ timezone="America/New_York"
34
+ variant="updated"
35
+ {...props}
36
+ />
37
+
38
+ <br />
39
+
40
+ <Timestamp
41
+ showTimezone="true"
42
+ showUser="false"
43
+ timestamp={new Date().getTime()}
44
+ timezone="America/New_York"
45
+ variant="updated"
46
+ {...props}
47
+ />
48
+
49
+ <br />
50
+ <br />
51
+
52
+ <Timestamp
53
+ align="center"
54
+ showUser="true"
55
+ text="Maricris Nonato"
56
+ timestamp={new Date().getTime()}
57
+ variant="updated"
58
+ {...props}
59
+ />
60
+
61
+ <br />
62
+
63
+ <Timestamp
64
+ align="center"
65
+ showUser="false"
66
+ timestamp={new Date().getTime()}
67
+ variant="updated"
68
+ {...props}
69
+ />
70
+
71
+ <br />
72
+
73
+ <Timestamp
74
+ align="center"
75
+ showTimezone="true"
76
+ showUser="true"
77
+ text="Maricris Nonato"
78
+ timestamp={new Date().getTime()}
79
+ timezone="America/New_York"
80
+ variant="updated"
81
+ {...props}
82
+ />
83
+
84
+ <br />
85
+
86
+ <Timestamp
87
+ align="center"
88
+ showTimezone="true"
89
+ showUser="false"
90
+ timestamp={new Date().getTime()}
91
+ timezone="America/New_York"
92
+ variant="updated"
93
+ {...props}
94
+ />
95
+
96
+ <br />
97
+ <br />
98
+
99
+ <Timestamp
100
+ align="right"
101
+ showUser="true"
102
+ text="Maricris Nonato"
103
+ timestamp={new Date().getTime()}
104
+ variant="updated"
105
+ {...props}
106
+ />
107
+
108
+ <br />
109
+
110
+ <Timestamp
111
+ align="right"
112
+ showUser="false"
113
+ timestamp={new Date().getTime()}
114
+ variant="updated"
115
+ {...props}
116
+ />
117
+
118
+ <br />
119
+
120
+ <Timestamp
121
+ align="right"
122
+ showTimezone="true"
123
+ showUser="true"
124
+ text="Maricris Nonato"
125
+ timestamp={new Date().getTime()}
126
+ timezone="America/New_York"
127
+ variant="updated"
128
+ {...props}
129
+ />
130
+
131
+ <br />
132
+
133
+ <Timestamp
134
+ align="right"
135
+ showTimezone="true"
136
+ showUser="false"
137
+ timestamp={new Date().getTime()}
138
+ timezone="America/New_York"
139
+ variant="updated"
140
+ {...props}
141
+ />
142
+ </div>
143
+ )
144
+ }
145
+
146
+ export default TimestampUpdatedAlign
@@ -2,6 +2,20 @@ examples:
2
2
 
3
3
  rails:
4
4
  - timestamp_default: Default
5
+ - timestamp_align: Alignments
6
+ - timestamp_timezones: Timezones
7
+ - timestamp_timezones_align: Timezones - Alignments
8
+ - timestamp_updated: Last Updated by
9
+ - timestamp_updated_align: Last Updated by - Alignments
10
+ - timestamp_elapsed: Time Ago
11
+ - timestamp_elapsed_align: Time Ago - Alignments
5
12
 
6
13
  react:
7
14
  - timestamp_default: Default
15
+ - timestamp_align: Alignments
16
+ - timestamp_timezones: Timezones
17
+ - timestamp_timezones_align: Timezones - Alignments
18
+ - timestamp_updated: Last Updated by
19
+ - timestamp_updated_align: Last Updated by - Alignments
20
+ - timestamp_elapsed: Time Ago
21
+ - timestamp_elapsed_align: Time Ago - Alignments
@@ -1 +1,8 @@
1
1
  export { default as TimestampDefault } from './_timestamp_default.jsx'
2
+ export { default as TimestampAlign } from './_timestamp_align.jsx'
3
+ export { default as TimestampTimezones } from './_timestamp_timezones.jsx'
4
+ export { default as TimestampTimezonesAlign } from './_timestamp_timezones_align.jsx'
5
+ export { default as TimestampUpdated } from './_timestamp_updated.jsx'
6
+ export { default as TimestampUpdatedAlign } from './_timestamp_updated_align.jsx'
7
+ export { default as TimestampElapsed } from './_timestamp_elapsed.jsx'
8
+ export { default as TimestampElapsedAlign } from './_timestamp_elapsed_align.jsx'
@@ -3,14 +3,80 @@
3
3
  module Playbook
4
4
  module PbTimestamp
5
5
  class Timestamp
6
+ include ActionView::Helpers::DateHelper
6
7
  include Playbook::Props
7
8
 
8
9
  partial "pb_timestamp/timestamp"
9
10
 
10
11
  prop :text
12
+ prop :timestamp, required: true
13
+
14
+ prop :dark, type: Playbook::Props::Boolean,
15
+ default: false
16
+ prop :align, type: Playbook::Props::Enum,
17
+ values: %w[left center right],
18
+ default: "left"
19
+ prop :show_date, type: Playbook::Props::Boolean,
20
+ default: true
21
+ prop :show_timezone, type: Playbook::Props::Boolean,
22
+ default: false
23
+ prop :show_user, type: Playbook::Props::Boolean,
24
+ default: false
25
+ prop :timezone, default: "America/New_York"
26
+ prop :variant, type: Playbook::Props::Enum,
27
+ values: %w[default elapsed updated],
28
+ default: "default"
11
29
 
12
30
  def classname
13
- generate_classname("pb_timestamp_kit")
31
+ generate_classname("pb_timestamp_kit", variant_class, align)
32
+ end
33
+
34
+ def format_year_string
35
+ pb_date_time.to_year != DateTime.now.year.to_s ? ", #{pb_date_time.to_year}" : ""
36
+ end
37
+
38
+ def format_time_string
39
+ "#{pb_date_time.to_hour}:#{pb_date_time.to_minutes}#{pb_date_time.to_meridian} #{format_timezone_string}".strip
40
+ end
41
+
42
+ def format_timezone_string
43
+ timezone && show_timezone ? pb_date_time.to_timezone.to_s : ""
44
+ end
45
+
46
+ def format_date_string
47
+ "#{pb_date_time.to_month_downcase} #{pb_date_time.to_unpadded_day}#{format_year_string}"
48
+ end
49
+
50
+ def format_datetime_string
51
+ "#{format_date_string} &middot; #{format_time_string}".html_safe
52
+ end
53
+
54
+ def format_updated_string
55
+ user_string = show_user ? " by #{text}" : ""
56
+
57
+ case variant
58
+ when "updated"
59
+ datetime_string = " on #{format_date_string} at #{format_time_string}"
60
+ when "elapsed"
61
+ datetime_string = " #{time_ago_in_words(pb_date_time.convert_to_timestamp)} ago"
62
+ end
63
+
64
+ "Last updated#{user_string}#{datetime_string}"
65
+ end
66
+
67
+ private
68
+
69
+ def pb_date_time
70
+ Playbook::PbKit::PbDateTime.new(timestamp, timezone)
71
+ end
72
+
73
+ def variant_class
74
+ case variant
75
+ when "updated"
76
+ "updated"
77
+ when "elapsed"
78
+ "elapsed"
79
+ end
14
80
  end
15
81
  end
16
82
  end