playbook_ui 9.10.0 → 9.14.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 (119) 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 +26 -22
  4. data/app/pb_kits/playbook/index.js +1 -0
  5. data/app/pb_kits/playbook/pb_background/background.rb +0 -1
  6. data/app/pb_kits/playbook/pb_badge/_badge.jsx +26 -1
  7. data/app/pb_kits/playbook/pb_badge/_badge.scss +1 -1
  8. data/app/pb_kits/playbook/pb_bread_crumbs/_bread_crumb_item.jsx +51 -0
  9. data/app/pb_kits/playbook/pb_bread_crumbs/_bread_crumbs.jsx +49 -0
  10. data/app/pb_kits/playbook/pb_bread_crumbs/_bread_crumbs.scss +55 -0
  11. data/app/pb_kits/playbook/pb_bread_crumbs/bread_crumb_item.html.erb +9 -0
  12. data/app/pb_kits/playbook/pb_bread_crumbs/bread_crumb_item.rb +12 -0
  13. data/app/pb_kits/playbook/pb_bread_crumbs/bread_crumbs.html.erb +7 -0
  14. data/app/pb_kits/playbook/pb_bread_crumbs/bread_crumbs.rb +11 -0
  15. data/app/pb_kits/playbook/pb_bread_crumbs/bread_crumbs.test.js +35 -0
  16. data/app/pb_kits/playbook/pb_bread_crumbs/docs/_bread_crumbs_default.html.erb +17 -0
  17. data/app/pb_kits/playbook/pb_bread_crumbs/docs/_bread_crumbs_default.jsx +56 -0
  18. data/app/pb_kits/playbook/pb_bread_crumbs/docs/_description.md +1 -0
  19. data/app/pb_kits/playbook/pb_bread_crumbs/docs/example.yml +7 -0
  20. data/app/pb_kits/playbook/pb_bread_crumbs/docs/index.js +1 -0
  21. data/app/pb_kits/playbook/pb_button/button.rb +1 -1
  22. data/app/pb_kits/playbook/pb_circle_chart/circle_chart.rb +9 -10
  23. data/app/pb_kits/playbook/pb_circle_icon_button/circle_icon_button.rb +4 -2
  24. data/app/pb_kits/playbook/pb_date_picker/_date_picker.jsx +6 -1
  25. data/app/pb_kits/playbook/pb_date_picker/date_picker_helper.js +3 -0
  26. data/app/pb_kits/playbook/pb_date_stacked/_date_stacked.jsx +45 -11
  27. data/app/pb_kits/playbook/pb_date_stacked/date_stacked.html.erb +17 -6
  28. data/app/pb_kits/playbook/pb_date_stacked/date_stacked.rb +18 -13
  29. data/app/pb_kits/playbook/pb_date_stacked/docs/_date_stacked_bold.html.erb +5 -0
  30. data/app/pb_kits/playbook/pb_date_stacked/docs/_date_stacked_bold.jsx +38 -0
  31. data/app/pb_kits/playbook/pb_date_stacked/docs/example.yml +3 -1
  32. data/app/pb_kits/playbook/pb_date_stacked/docs/index.js +1 -0
  33. data/app/pb_kits/playbook/pb_date_time_stacked/_date_time_stacked.jsx +32 -16
  34. data/app/pb_kits/playbook/pb_date_time_stacked/_date_time_stacked.scss +23 -4
  35. data/app/pb_kits/playbook/pb_date_time_stacked/date_time_stacked.html.erb +12 -8
  36. data/app/pb_kits/playbook/pb_date_time_stacked/date_time_stacked.rb +9 -2
  37. data/app/pb_kits/playbook/pb_date_time_stacked/date_time_stacked.test.js +35 -0
  38. data/app/pb_kits/playbook/pb_date_time_stacked/docs/_date_time_stacked_default.html.erb +8 -1
  39. data/app/pb_kits/playbook/pb_date_time_stacked/docs/_date_time_stacked_default.jsx +19 -1
  40. data/app/pb_kits/playbook/pb_dialog/dialog.test.jsx +1 -1
  41. data/app/pb_kits/playbook/pb_distribution_bar/distribution_bar.rb +2 -2
  42. data/app/pb_kits/playbook/pb_filter/filter.rb +1 -1
  43. data/app/pb_kits/playbook/pb_fixed_confirmation_toast/fixed_confirmation_toast.rb +1 -1
  44. data/app/pb_kits/playbook/pb_flex/_flex.jsx +6 -1
  45. data/app/pb_kits/playbook/pb_flex/flex.rb +4 -4
  46. data/app/pb_kits/playbook/pb_form/form.rb +1 -1
  47. data/app/pb_kits/playbook/pb_form_pill/_form_pill.jsx +12 -2
  48. data/app/pb_kits/playbook/pb_form_pill/_form_pill.scss +19 -0
  49. data/app/pb_kits/playbook/pb_form_pill/docs/_form_pill_size.html.erb +13 -0
  50. data/app/pb_kits/playbook/pb_form_pill/docs/_form_pill_size.jsx +25 -0
  51. data/app/pb_kits/playbook/pb_form_pill/docs/_form_pill_user.html.erb +4 -5
  52. data/app/pb_kits/playbook/pb_form_pill/docs/_form_pill_user.jsx +2 -6
  53. data/app/pb_kits/playbook/pb_form_pill/docs/example.yml +2 -0
  54. data/app/pb_kits/playbook/pb_form_pill/docs/index.js +1 -0
  55. data/app/pb_kits/playbook/pb_form_pill/form_pill.html.erb +1 -1
  56. data/app/pb_kits/playbook/pb_form_pill/form_pill.rb +5 -0
  57. data/app/pb_kits/playbook/pb_icon_stat_value/icon_stat_value.rb +0 -1
  58. data/app/pb_kits/playbook/pb_multiple_users_stacked/_multiple_users_stacked.scss +6 -2
  59. data/app/pb_kits/playbook/pb_passphrase/_passphrase.jsx +14 -11
  60. data/app/pb_kits/playbook/pb_passphrase/_passphrase.scss +18 -13
  61. data/app/pb_kits/playbook/pb_pill/_pill.jsx +1 -0
  62. data/app/pb_kits/playbook/pb_pill/pill.html.erb +1 -1
  63. data/app/pb_kits/playbook/pb_progress_pills/progress_pills.rb +2 -1
  64. data/app/pb_kits/playbook/pb_progress_step/progress_step.rb +1 -1
  65. data/app/pb_kits/playbook/pb_progress_step/progress_step_item.rb +1 -1
  66. data/app/pb_kits/playbook/pb_rich_text_editor/_rich_text_editor.jsx +10 -0
  67. data/app/pb_kits/playbook/pb_rich_text_editor/_rich_text_editor.scss +61 -0
  68. data/app/pb_kits/playbook/pb_rich_text_editor/docs/_rich_text_editor_inline.html.erb +6 -0
  69. data/app/pb_kits/playbook/pb_rich_text_editor/docs/_rich_text_editor_inline.jsx +16 -0
  70. data/app/pb_kits/playbook/pb_rich_text_editor/docs/_rich_text_editor_toolbar_bottom.html.erb +4 -0
  71. data/app/pb_kits/playbook/pb_rich_text_editor/docs/_rich_text_editor_toolbar_bottom.jsx +14 -0
  72. data/app/pb_kits/playbook/pb_rich_text_editor/docs/example.yml +4 -0
  73. data/app/pb_kits/playbook/pb_rich_text_editor/docs/index.js +2 -0
  74. data/app/pb_kits/playbook/pb_rich_text_editor/rich_text_editor.rb +9 -2
  75. data/app/pb_kits/playbook/pb_section_separator/_section_separator.jsx +7 -3
  76. data/app/pb_kits/playbook/pb_select/_select.jsx +5 -5
  77. data/app/pb_kits/playbook/pb_selectable_card_icon/selectable_card_icon.rb +1 -1
  78. data/app/pb_kits/playbook/pb_selectable_icon/selectable_icon.rb +1 -1
  79. data/app/pb_kits/playbook/pb_stat_change/stat_change.rb +8 -12
  80. data/app/pb_kits/playbook/pb_text_input/_text_input.jsx +83 -31
  81. data/app/pb_kits/playbook/pb_text_input/_text_input.scss +106 -0
  82. data/app/pb_kits/playbook/pb_text_input/add_on.html.erb +13 -0
  83. data/app/pb_kits/playbook/pb_text_input/add_on.rb +30 -0
  84. data/app/pb_kits/playbook/pb_text_input/docs/_text_input_add_on.html.erb +24 -0
  85. data/app/pb_kits/playbook/pb_text_input/docs/_text_input_add_on.jsx +82 -0
  86. data/app/pb_kits/playbook/pb_text_input/docs/_text_input_custom.html.erb +1 -1
  87. data/app/pb_kits/playbook/pb_text_input/docs/_text_input_inline.html.erb +5 -0
  88. data/app/pb_kits/playbook/pb_text_input/docs/_text_input_inline.jsx +22 -0
  89. data/app/pb_kits/playbook/pb_text_input/docs/example.yml +4 -0
  90. data/app/pb_kits/playbook/pb_text_input/docs/index.js +2 -0
  91. data/app/pb_kits/playbook/pb_text_input/text_input.html.erb +7 -16
  92. data/app/pb_kits/playbook/pb_text_input/text_input.rb +43 -3
  93. data/app/pb_kits/playbook/pb_time_stacked/time_stacked.html.erb +2 -2
  94. data/app/pb_kits/playbook/pb_tooltip/tooltip.rb +1 -1
  95. data/app/pb_kits/playbook/pb_typeahead/_typeahead.jsx +11 -2
  96. data/app/pb_kits/playbook/pb_typeahead/_typeahead.scss +23 -0
  97. data/app/pb_kits/playbook/pb_typeahead/components/MultiValue.jsx +23 -11
  98. data/app/pb_kits/playbook/pb_typeahead/components/Placeholder.jsx +17 -4
  99. data/app/pb_kits/playbook/pb_typeahead/docs/_typeahead_createable.jsx +25 -0
  100. data/app/pb_kits/playbook/pb_typeahead/docs/_typeahead_inline.html.erb +36 -0
  101. data/app/pb_kits/playbook/pb_typeahead/docs/_typeahead_inline.jsx +43 -0
  102. data/app/pb_kits/playbook/pb_typeahead/docs/_typeahead_multi_kit.html.erb +35 -0
  103. data/app/pb_kits/playbook/pb_typeahead/docs/_typeahead_multi_kit.jsx +44 -0
  104. data/app/pb_kits/playbook/pb_typeahead/docs/example.yml +5 -0
  105. data/app/pb_kits/playbook/pb_typeahead/docs/index.js +8 -5
  106. data/app/pb_kits/playbook/pb_typeahead/typeahead.html.erb +1 -1
  107. data/app/pb_kits/playbook/pb_typeahead/typeahead.rb +18 -2
  108. data/app/pb_kits/playbook/pb_user_badge/user_badge.rb +1 -1
  109. data/lib/playbook/forms/builder/action_area.rb +2 -2
  110. data/lib/playbook/forms/builder/collection_select_field.rb +2 -2
  111. data/lib/playbook/forms/builder/select_field.rb +1 -1
  112. data/lib/playbook/kit_resolver.rb +1 -1
  113. data/lib/playbook/markdown/template_handler.rb +4 -2
  114. data/lib/playbook/pb_doc_helper.rb +4 -2
  115. data/lib/playbook/props.rb +2 -4
  116. data/lib/playbook/props/base.rb +1 -2
  117. data/lib/playbook/props/nested_props.rb +23 -0
  118. data/lib/playbook/version.rb +2 -1
  119. metadata +62 -29
@@ -0,0 +1,17 @@
1
+
2
+ <div>
3
+ <%= pb_rails("bread_crumbs", props: { aria: { label: "Breadcrumb Navigation" } }) do%>
4
+ <%= pb_rails("icon", props: { icon: "home"}) %>
5
+ <%= pb_rails("bread_crumbs/bread_crumb_item", props: { link: "/" }) do %>
6
+ <%= pb_rails("title", props: { size: 4, text: "Home", tag: "span" }) %>
7
+ <%end%>
8
+ <%= pb_rails("icon", props: { icon: 'users'}) %>
9
+ <%= pb_rails("bread_crumbs/bread_crumb_item", props: { link: "/users" }) do %>
10
+ <%= pb_rails("title", props: { size: 4, text: "Users", tag: "span" }) %>
11
+ <%end%>
12
+ <%= pb_rails("icon", props: { icon: "user"}) %>
13
+ <%= pb_rails("bread_crumbs/bread_crumb_item") do %>
14
+ <%= pb_rails("title", props: { size: 4, text: "User", tag: "span" }) %>
15
+ <%end%>
16
+ <%end%>
17
+ </div>
@@ -0,0 +1,56 @@
1
+ import React from 'react'
2
+ import BreadCrumbs from '../_bread_crumbs.jsx'
3
+ import { Icon, Title } from '../../'
4
+ import BreadCrumbItem from '../_bread_crumb_item'
5
+
6
+ const Link = (props) => <BreadCrumbItem {...props} />
7
+ const BreadCrumbsDefault = (props) => {
8
+ return (
9
+ <BreadCrumbs
10
+ text="+1"
11
+ {...props}
12
+ >
13
+ <Icon
14
+ icon="home"
15
+ size="1x"
16
+ />
17
+ <BreadCrumbItem
18
+ {...props}
19
+ href="/home"
20
+ >
21
+ <Title
22
+ size="4"
23
+ tag="span"
24
+ text="Home"
25
+ />
26
+ </BreadCrumbItem>
27
+ <Icon
28
+ icon="users"
29
+ size="1x"
30
+ />
31
+ <Link
32
+ {...props}
33
+ href="/users"
34
+ >
35
+ <Title
36
+ size="4"
37
+ tag="span"
38
+ text="Users"
39
+ />
40
+ </Link>
41
+ <Icon
42
+ icon="user"
43
+ size="1x"
44
+ />
45
+ <Link {...props}>
46
+ <Title
47
+ size="4"
48
+ tag="span"
49
+ text="User"
50
+ />
51
+ </Link>
52
+ </BreadCrumbs>
53
+ )
54
+ }
55
+
56
+ export default BreadCrumbsDefault
@@ -0,0 +1 @@
1
+ BreadCrumbs can be used for keeping a user aware of there route location.
@@ -0,0 +1,7 @@
1
+ examples:
2
+ rails:
3
+ - bread_crumbs_default: Default
4
+
5
+ react:
6
+ - bread_crumbs_default: Default
7
+
@@ -0,0 +1 @@
1
+ export { default as BreadCrumbsDefault } from './_bread_crumbs_default.jsx'
@@ -36,7 +36,7 @@ module Playbook
36
36
  options.merge(
37
37
  href: link,
38
38
  role: "link",
39
- target: new_window ? "_blank" : "_self",
39
+ target: new_window ? "_blank" : "_self"
40
40
  )
41
41
  end
42
42
 
@@ -6,37 +6,36 @@ module Playbook
6
6
  prop :chart_data, type: Playbook::Props::Array,
7
7
  default: []
8
8
  prop :style, type: Playbook::Props::Enum,
9
- values: %w[pie],
10
- default: "pie"
9
+ values: %w[pie],
10
+ default: "pie"
11
11
 
12
12
  prop :data_labels, type: Playbook::Props::Boolean, default: false
13
13
  prop :min_point_size, type: Playbook::Props::Numeric
14
14
  prop :max_point_size, type: Playbook::Props::Numeric
15
15
  prop :inner_size, type: Playbook::Props::Enum,
16
- values: %w[sm md lg none],
17
- default: "md"
16
+ values: %w[sm md lg none],
17
+ default: "md"
18
18
  prop :z_min, type: Playbook::Props::Numeric
19
19
  prop :start_angle, type: Playbook::Props::Numeric
20
20
  prop :header_format
21
- prop :data_label_html, default: '<div>{point.name}</div>'
21
+ prop :data_label_html, default: "<div>{point.name}</div>"
22
22
  prop :tooltip_html, default: '<span style="font-weight: bold; color:{point.color};">●</span>
23
23
  {point.name}: ' + '<b>{point.y}
24
24
  </b>'
25
25
  prop :use_html, type: Playbook::Props::Boolean, default: false
26
26
  prop :legend, type: Playbook::Props::Boolean, default: false
27
- prop :title, default: ''
27
+ prop :title, default: ""
28
28
  prop :rounded, type: Playbook::Props::Boolean, default: false
29
29
  prop :colors, type: Playbook::Props::Array,
30
30
  default: []
31
31
 
32
-
33
32
  def chart_type
34
33
  style == "variablepie" ? "variablepie" : "pie"
35
34
  end
36
35
 
37
36
  def chart_data_formatted
38
- chart_data.map{ |hash| hash[:y] = hash.delete :value}
39
- return chart_data
37
+ chart_data.map { |hash| hash[:y] = hash.delete :value }
38
+ chart_data
40
39
  end
41
40
 
42
41
  def inner_size_format
@@ -57,7 +56,7 @@ module Playbook
57
56
  end
58
57
 
59
58
  def rounded_border_color
60
- rounded == true ? 'null' : nil
59
+ rounded == true ? "null" : nil
61
60
  end
62
61
 
63
62
  def chart_options
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Playbook
2
4
  module PbCircleIconButton
3
5
  class CircleIconButton < Playbook::KitBase
@@ -8,11 +10,11 @@ module Playbook
8
10
  values: %w[primary secondary link],
9
11
  default: "primary"
10
12
  prop :disabled, type: Playbook::Props::Boolean,
11
- default: false
13
+ default: false
12
14
  prop :icon, required: true
13
15
  prop :link
14
16
  prop :new_window, type: Playbook::Props::Boolean,
15
- default: false
17
+ default: false
16
18
  def classname
17
19
  generate_classname("pb_circle_icon_button_kit")
18
20
  end
@@ -25,6 +25,8 @@ type DatePickerProps = {
25
25
  id?: String,
26
26
  inputAria?: object,
27
27
  inputData?: object,
28
+ inputOnChange?: (String) => void,
29
+ inputValue?: any,
28
30
  label?: String,
29
31
  maxDate: String,
30
32
  minDate: String,
@@ -55,6 +57,8 @@ const DatePicker = (props: DatePickerProps) => {
55
57
  id,
56
58
  inputAria,
57
59
  inputData,
60
+ inputOnChange,
61
+ inputValue,
58
62
  label = 'Date Picker',
59
63
  maxDate,
60
64
  minDate,
@@ -114,7 +118,6 @@ const DatePicker = (props: DatePickerProps) => {
114
118
  className={classes}
115
119
  id={id}
116
120
  >
117
- {className}
118
121
  <div className="input_wrapper">
119
122
  <TextInput
120
123
  aria={inputAria}
@@ -126,7 +129,9 @@ const DatePicker = (props: DatePickerProps) => {
126
129
  id={pickerId}
127
130
  label={hideLabel ? null : label}
128
131
  name={name}
132
+ onChange={inputOnChange}
129
133
  placeholder={placeholder}
134
+ value={inputValue}
130
135
  />
131
136
  <If condition={!hideIcon}>
132
137
  <div
@@ -166,6 +166,9 @@ const datePickerHelper = (config) => {
166
166
  picker.input.style.caretColor = 'transparent'
167
167
  picker.input.style.cursor = 'pointer'
168
168
  }
169
+
170
+ // Fix event bubbling bug on wrapper
171
+ document.querySelector(`#${pickerId}`).parentElement.addEventListener('click', (e) => e.stopPropagation())
169
172
  }
170
173
 
171
174
  export default datePickerHelper
@@ -9,6 +9,7 @@ import { globalProps } from '../utilities/globalProps.js'
9
9
 
10
10
  type DateStackedProps = {
11
11
  align?: "left" | "center" | "right",
12
+ bold?: boolean,
12
13
  className?: string | array<string>,
13
14
  dark?: boolean,
14
15
  data?: string,
@@ -26,6 +27,7 @@ const sizes = {
26
27
  const DateStacked = (props: DateStackedProps) => {
27
28
  const {
28
29
  align = 'left',
30
+ bold = false,
29
31
  reverse = false,
30
32
  className,
31
33
  dark = false,
@@ -46,19 +48,51 @@ const DateStacked = (props: DateStackedProps) => {
46
48
  const inputYear = dateTimestamp.toYear().toString()
47
49
 
48
50
  return (
49
- <div className={classes}>
50
- <div className="pb_date_stacked_day_month">
51
- <Caption text={dateTimestamp.toMonth().toUpperCase()} />
52
- <Title
53
- dark={dark}
54
- size={sizes[size]}
55
- text={dateTimestamp.toDay()}
56
- />
57
- </div>
58
- <If condition={currentYear != inputYear}>
59
- <Caption size="xs">{inputYear}</Caption>
51
+
52
+ <div>
53
+ <If condition={bold == false}>
54
+
55
+ <div className={classes}>
56
+ <div className="pb_date_stacked_day_month">
57
+ <Caption text={dateTimestamp.toMonth().toUpperCase()} />
58
+ <Title
59
+ dark={dark}
60
+ size={sizes[size]}
61
+ text={dateTimestamp.toDay()}
62
+ />
63
+ </div>
64
+ <If condition={currentYear != inputYear}>
65
+ <Caption size="xs">{inputYear}</Caption>
66
+ </If>
67
+ </div>
68
+ <Else />
69
+ <>
70
+ <div className={classes}>
71
+ <div className="pb_date_stacked_day_month">
72
+
73
+ <Title
74
+ bold
75
+ dark={dark}
76
+ size="4"
77
+ text={dateTimestamp.toMonth()}
78
+ />
79
+ <Title
80
+ bold
81
+ dark={dark}
82
+ size="4"
83
+ text={dateTimestamp.toDay()}
84
+ />
85
+ <If condition={currentYear != inputYear}>
86
+ <Title size="4">{inputYear}</Title>
87
+ </If>
88
+ </div>
89
+
90
+ </div>
91
+
92
+ </>
60
93
  </If>
61
94
  </div>
95
+
62
96
  )
63
97
  }
64
98
 
@@ -3,11 +3,22 @@
3
3
  data: object.data,
4
4
  class: object.classname) do %>
5
5
 
6
- <div class="pb_date_stacked_day_month">
7
- <%= pb_rails("caption", props: { text: object.month }) %>
8
- <%= pb_rails("title", props: { text: object.day , size: object.title_size }) do %>
9
- <% end %>
10
- </div>
11
- <%= pb_rails("caption", props: { text: object.year, size:"xs" }) %>
6
+ <% if object.bold == false %>
7
+
8
+ <div class="pb_date_stacked_day_month">
9
+ <%= pb_rails("caption", props: { text: object.month }) %>
10
+ <%= pb_rails("title", props: { text: object.day , size: object.title_size }) do %><% end %>
11
+ <%= pb_rails("caption", props: { text: object.year, size:"xs" }) %>
12
+ </div>
13
+
14
+ <% else %>
15
+ <div class="pb_date_stacked_day_month">
16
+ <%= pb_rails("title", props: { text: object.month, size: 4 }) %>
17
+ <%= pb_rails("title", props: { text: object.day, size: 4 }) do %><% end %>
18
+ <%= pb_rails("title", props: { text: object.year, size:4 }) %>
19
+
20
+ </div>
21
+
22
+ <% end %>
12
23
 
13
24
  <% end %>
@@ -5,36 +5,35 @@ module Playbook
5
5
  class DateStacked < Playbook::KitBase
6
6
  prop :date, type: Playbook::Props::Date, required: true
7
7
  prop :align, type: Playbook::Props::Enum,
8
- values: %w[left center right],
9
- default: "left"
8
+ values: %w[left center right],
9
+ default: "left"
10
10
  prop :size, type: Playbook::Props::Enum,
11
11
  values: %w[sm md],
12
12
  default: "sm"
13
13
  prop :reverse, type: Playbook::Props::Boolean,
14
- default: false
14
+ default: false
15
15
  prop :dark, type: Playbook::Props::Boolean,
16
16
  default: false
17
+ prop :bold, type: Playbook::Props::Boolean,
18
+ default: false
17
19
 
18
20
  def classname
19
- generate_classname("pb_date_stacked_kit", align, size, reverse_class, dark_class)
21
+ generate_classname("pb_date_stacked_kit", align, size, bold, reverse_class, dark_class)
20
22
  end
21
23
 
22
24
  def title_size
23
- size == "md" ? 3: 4
25
+ size == "md" ? 3 : 4
24
26
  end
25
27
 
26
28
  def day
27
29
  day = Playbook::PbKit::PbDateTime.new(date)
28
30
  content_tag(:time, datetime: day.to_iso) do
29
- "#{day.to_day}"
31
+ day.to_day.to_s
30
32
  end
31
33
  end
32
34
 
33
35
  def month
34
- month = Playbook::PbKit::PbDateTime.new(date)
35
- content_tag(:time, datetime: month.to_iso) do
36
- "#{month.to_month}"
37
- end
36
+ pb_date_time.to_month.capitalize
38
37
  end
39
38
 
40
39
  def year
@@ -42,14 +41,21 @@ module Playbook
42
41
  year = Playbook::PbKit::PbDateTime.new(date).to_year.to_i
43
42
  if current_year != year
44
43
  content_tag(:time, datetime: year) do
45
- "#{year}"
44
+ year.to_s
46
45
  end
47
- else
48
46
  end
49
47
  end
50
48
 
49
+ def bold_class
50
+ bold ? "bold" : nil
51
+ end
52
+
51
53
  private
52
54
 
55
+ def pb_date_time
56
+ Playbook::PbKit::PbDateTime.new(date)
57
+ end
58
+
53
59
  def reverse_class
54
60
  reverse ? "reverse" : nil
55
61
  end
@@ -57,7 +63,6 @@ module Playbook
57
63
  def dark_class
58
64
  dark ? "dark" : nil
59
65
  end
60
-
61
66
  end
62
67
  end
63
68
  end
@@ -0,0 +1,5 @@
1
+ <%= pb_rails("date_stacked", props: { date: DateTime.now, align: "left", bold: true }) %>
2
+ <br>
3
+ <%= pb_rails("date_stacked", props: { date: Date.new(2018, 03, 20), align: "center", bold: true }) %>
4
+ <br>
5
+ <%= pb_rails("date_stacked", props: { date: DateTime.now, align: "right", bold: true }) %>
@@ -0,0 +1,38 @@
1
+ import React from 'react'
2
+ import DateStacked from '../_date_stacked.jsx'
3
+
4
+ const DateStackedBold = (props) => {
5
+ return (
6
+ <div>
7
+ <DateStacked
8
+ align="left"
9
+ bold
10
+ date={new Date()}
11
+ {...props}
12
+ />
13
+
14
+ <br />
15
+
16
+ <DateStacked
17
+ align="center"
18
+ bold
19
+ date={new Date('20 Mar 2018')}
20
+ {...props}
21
+ />
22
+
23
+ <br />
24
+
25
+ <DateStacked
26
+ align="right"
27
+ bold
28
+ date={new Date()}
29
+ {...props}
30
+ />
31
+
32
+ <br />
33
+
34
+ </div>
35
+ )
36
+ }
37
+
38
+ export default DateStackedBold