playbook_ui 9.10.0 → 9.14.1.alpha.highcharts9
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/_playbook.scss +1 -0
- data/app/pb_kits/playbook/data/menu.yml +26 -22
- data/app/pb_kits/playbook/index.js +1 -0
- data/app/pb_kits/playbook/pb_background/background.rb +0 -1
- data/app/pb_kits/playbook/pb_badge/_badge.jsx +26 -1
- data/app/pb_kits/playbook/pb_badge/_badge.scss +1 -1
- data/app/pb_kits/playbook/pb_bread_crumbs/_bread_crumb_item.jsx +51 -0
- data/app/pb_kits/playbook/pb_bread_crumbs/_bread_crumbs.jsx +49 -0
- data/app/pb_kits/playbook/pb_bread_crumbs/_bread_crumbs.scss +55 -0
- data/app/pb_kits/playbook/pb_bread_crumbs/bread_crumb_item.html.erb +9 -0
- data/app/pb_kits/playbook/pb_bread_crumbs/bread_crumb_item.rb +12 -0
- data/app/pb_kits/playbook/pb_bread_crumbs/bread_crumbs.html.erb +7 -0
- data/app/pb_kits/playbook/pb_bread_crumbs/bread_crumbs.rb +11 -0
- data/app/pb_kits/playbook/pb_bread_crumbs/bread_crumbs.test.js +35 -0
- data/app/pb_kits/playbook/pb_bread_crumbs/docs/_bread_crumbs_default.html.erb +17 -0
- data/app/pb_kits/playbook/pb_bread_crumbs/docs/_bread_crumbs_default.jsx +56 -0
- data/app/pb_kits/playbook/pb_bread_crumbs/docs/_description.md +1 -0
- data/app/pb_kits/playbook/pb_bread_crumbs/docs/example.yml +7 -0
- data/app/pb_kits/playbook/pb_bread_crumbs/docs/index.js +1 -0
- data/app/pb_kits/playbook/pb_button/button.rb +1 -1
- data/app/pb_kits/playbook/pb_circle_chart/circle_chart.rb +9 -10
- data/app/pb_kits/playbook/pb_circle_icon_button/circle_icon_button.rb +4 -2
- data/app/pb_kits/playbook/pb_date_picker/_date_picker.jsx +6 -1
- data/app/pb_kits/playbook/pb_date_picker/date_picker_helper.js +3 -0
- data/app/pb_kits/playbook/pb_date_stacked/_date_stacked.jsx +45 -11
- data/app/pb_kits/playbook/pb_date_stacked/date_stacked.html.erb +17 -6
- data/app/pb_kits/playbook/pb_date_stacked/date_stacked.rb +18 -13
- data/app/pb_kits/playbook/pb_date_stacked/docs/_date_stacked_bold.html.erb +5 -0
- data/app/pb_kits/playbook/pb_date_stacked/docs/_date_stacked_bold.jsx +38 -0
- data/app/pb_kits/playbook/pb_date_stacked/docs/example.yml +3 -1
- data/app/pb_kits/playbook/pb_date_stacked/docs/index.js +1 -0
- data/app/pb_kits/playbook/pb_date_time_stacked/_date_time_stacked.jsx +32 -16
- data/app/pb_kits/playbook/pb_date_time_stacked/_date_time_stacked.scss +23 -4
- data/app/pb_kits/playbook/pb_date_time_stacked/date_time_stacked.html.erb +12 -8
- data/app/pb_kits/playbook/pb_date_time_stacked/date_time_stacked.rb +9 -2
- data/app/pb_kits/playbook/pb_date_time_stacked/date_time_stacked.test.js +35 -0
- data/app/pb_kits/playbook/pb_date_time_stacked/docs/_date_time_stacked_default.html.erb +8 -1
- data/app/pb_kits/playbook/pb_date_time_stacked/docs/_date_time_stacked_default.jsx +19 -1
- data/app/pb_kits/playbook/pb_dialog/dialog.test.jsx +1 -1
- data/app/pb_kits/playbook/pb_distribution_bar/distribution_bar.rb +2 -2
- data/app/pb_kits/playbook/pb_filter/filter.rb +1 -1
- data/app/pb_kits/playbook/pb_fixed_confirmation_toast/fixed_confirmation_toast.rb +1 -1
- data/app/pb_kits/playbook/pb_flex/_flex.jsx +6 -1
- data/app/pb_kits/playbook/pb_flex/flex.rb +4 -4
- data/app/pb_kits/playbook/pb_form/form.rb +1 -1
- data/app/pb_kits/playbook/pb_form_pill/_form_pill.jsx +12 -2
- data/app/pb_kits/playbook/pb_form_pill/_form_pill.scss +19 -0
- data/app/pb_kits/playbook/pb_form_pill/docs/_form_pill_size.html.erb +13 -0
- data/app/pb_kits/playbook/pb_form_pill/docs/_form_pill_size.jsx +25 -0
- data/app/pb_kits/playbook/pb_form_pill/docs/_form_pill_user.html.erb +4 -5
- data/app/pb_kits/playbook/pb_form_pill/docs/_form_pill_user.jsx +2 -6
- data/app/pb_kits/playbook/pb_form_pill/docs/example.yml +2 -0
- data/app/pb_kits/playbook/pb_form_pill/docs/index.js +1 -0
- data/app/pb_kits/playbook/pb_form_pill/form_pill.html.erb +1 -1
- data/app/pb_kits/playbook/pb_form_pill/form_pill.rb +5 -0
- data/app/pb_kits/playbook/pb_icon_stat_value/icon_stat_value.rb +0 -1
- data/app/pb_kits/playbook/pb_multiple_users_stacked/_multiple_users_stacked.scss +6 -2
- data/app/pb_kits/playbook/pb_passphrase/_passphrase.jsx +14 -11
- data/app/pb_kits/playbook/pb_passphrase/_passphrase.scss +18 -13
- data/app/pb_kits/playbook/pb_pill/_pill.jsx +1 -0
- data/app/pb_kits/playbook/pb_pill/pill.html.erb +1 -1
- data/app/pb_kits/playbook/pb_progress_pills/progress_pills.rb +2 -1
- data/app/pb_kits/playbook/pb_progress_step/progress_step.rb +1 -1
- data/app/pb_kits/playbook/pb_progress_step/progress_step_item.rb +1 -1
- data/app/pb_kits/playbook/pb_rich_text_editor/_rich_text_editor.jsx +10 -0
- data/app/pb_kits/playbook/pb_rich_text_editor/_rich_text_editor.scss +61 -0
- data/app/pb_kits/playbook/pb_rich_text_editor/docs/_rich_text_editor_inline.html.erb +6 -0
- data/app/pb_kits/playbook/pb_rich_text_editor/docs/_rich_text_editor_inline.jsx +16 -0
- data/app/pb_kits/playbook/pb_rich_text_editor/docs/_rich_text_editor_toolbar_bottom.html.erb +4 -0
- data/app/pb_kits/playbook/pb_rich_text_editor/docs/_rich_text_editor_toolbar_bottom.jsx +14 -0
- data/app/pb_kits/playbook/pb_rich_text_editor/docs/example.yml +4 -0
- data/app/pb_kits/playbook/pb_rich_text_editor/docs/index.js +2 -0
- data/app/pb_kits/playbook/pb_rich_text_editor/rich_text_editor.rb +9 -2
- data/app/pb_kits/playbook/pb_section_separator/_section_separator.jsx +7 -3
- data/app/pb_kits/playbook/pb_select/_select.jsx +5 -5
- data/app/pb_kits/playbook/pb_selectable_card_icon/selectable_card_icon.rb +1 -1
- data/app/pb_kits/playbook/pb_selectable_icon/selectable_icon.rb +1 -1
- data/app/pb_kits/playbook/pb_stat_change/stat_change.rb +8 -12
- data/app/pb_kits/playbook/pb_text_input/_text_input.jsx +83 -31
- data/app/pb_kits/playbook/pb_text_input/_text_input.scss +106 -0
- data/app/pb_kits/playbook/pb_text_input/add_on.html.erb +13 -0
- data/app/pb_kits/playbook/pb_text_input/add_on.rb +30 -0
- data/app/pb_kits/playbook/pb_text_input/docs/_text_input_add_on.html.erb +24 -0
- data/app/pb_kits/playbook/pb_text_input/docs/_text_input_add_on.jsx +82 -0
- data/app/pb_kits/playbook/pb_text_input/docs/_text_input_custom.html.erb +1 -1
- data/app/pb_kits/playbook/pb_text_input/docs/_text_input_inline.html.erb +5 -0
- data/app/pb_kits/playbook/pb_text_input/docs/_text_input_inline.jsx +22 -0
- data/app/pb_kits/playbook/pb_text_input/docs/example.yml +4 -0
- data/app/pb_kits/playbook/pb_text_input/docs/index.js +2 -0
- data/app/pb_kits/playbook/pb_text_input/text_input.html.erb +7 -16
- data/app/pb_kits/playbook/pb_text_input/text_input.rb +43 -3
- data/app/pb_kits/playbook/pb_time_stacked/time_stacked.html.erb +2 -2
- data/app/pb_kits/playbook/pb_tooltip/tooltip.rb +1 -1
- data/app/pb_kits/playbook/pb_typeahead/_typeahead.jsx +11 -2
- data/app/pb_kits/playbook/pb_typeahead/_typeahead.scss +23 -0
- data/app/pb_kits/playbook/pb_typeahead/components/MultiValue.jsx +23 -11
- data/app/pb_kits/playbook/pb_typeahead/components/Placeholder.jsx +17 -4
- data/app/pb_kits/playbook/pb_typeahead/docs/_typeahead_createable.jsx +25 -0
- data/app/pb_kits/playbook/pb_typeahead/docs/_typeahead_inline.html.erb +36 -0
- data/app/pb_kits/playbook/pb_typeahead/docs/_typeahead_inline.jsx +43 -0
- data/app/pb_kits/playbook/pb_typeahead/docs/_typeahead_multi_kit.html.erb +35 -0
- data/app/pb_kits/playbook/pb_typeahead/docs/_typeahead_multi_kit.jsx +44 -0
- data/app/pb_kits/playbook/pb_typeahead/docs/example.yml +5 -0
- data/app/pb_kits/playbook/pb_typeahead/docs/index.js +8 -5
- data/app/pb_kits/playbook/pb_typeahead/typeahead.html.erb +1 -1
- data/app/pb_kits/playbook/pb_typeahead/typeahead.rb +18 -2
- data/app/pb_kits/playbook/pb_user_badge/user_badge.rb +1 -1
- data/lib/playbook/forms/builder/action_area.rb +2 -2
- data/lib/playbook/forms/builder/collection_select_field.rb +2 -2
- data/lib/playbook/forms/builder/select_field.rb +1 -1
- data/lib/playbook/kit_resolver.rb +1 -1
- data/lib/playbook/markdown/template_handler.rb +4 -2
- data/lib/playbook/pb_doc_helper.rb +4 -2
- data/lib/playbook/props.rb +2 -4
- data/lib/playbook/props/base.rb +1 -2
- data/lib/playbook/props/nested_props.rb +23 -0
- data/lib/playbook/version.rb +2 -1
- metadata +58 -24
@@ -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 @@
|
|
1
|
+
export { default as BreadCrumbsDefault } from './_bread_crumbs_default.jsx'
|
@@ -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
|
-
|
10
|
-
|
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
|
-
|
17
|
-
|
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:
|
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
|
-
|
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 ?
|
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
|
-
|
13
|
+
default: false
|
12
14
|
prop :icon, required: true
|
13
15
|
prop :link
|
14
16
|
prop :new_window, type: Playbook::Props::Boolean,
|
15
|
-
|
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
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
text={dateTimestamp.
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
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
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
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
|
-
|
9
|
-
|
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
|
-
|
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
|
-
|
31
|
+
day.to_day.to_s
|
30
32
|
end
|
31
33
|
end
|
32
34
|
|
33
35
|
def month
|
34
|
-
|
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
|
-
|
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
|