playbook_ui 7.3.0.pre.alpha7 → 7.3.0
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 +3 -1
- data/app/pb_kits/playbook/data/menu.yml +2 -2
- data/app/pb_kits/playbook/index.js +2 -1
- data/app/pb_kits/playbook/pb_background/_background.html.erb +14 -0
- data/app/pb_kits/playbook/pb_background/_background.jsx +63 -0
- data/app/pb_kits/playbook/pb_background/_background.scss +35 -0
- data/app/pb_kits/playbook/pb_background/background.rb +35 -0
- data/app/pb_kits/playbook/pb_background/docs/_background_dark.html.erb +3 -0
- data/app/pb_kits/playbook/pb_background/docs/_background_dark.jsx +13 -0
- data/app/pb_kits/playbook/pb_background/docs/_background_gradient.html.erb +3 -0
- data/app/pb_kits/playbook/pb_background/docs/_background_gradient.jsx +13 -0
- data/app/pb_kits/playbook/pb_background/docs/_background_image.html.erb +13 -0
- data/app/pb_kits/playbook/pb_background/docs/_background_image.jsx +30 -0
- data/app/pb_kits/playbook/pb_background/docs/_background_light.html.erb +3 -0
- data/app/pb_kits/playbook/pb_background/docs/_background_light.jsx +13 -0
- data/app/pb_kits/playbook/pb_background/docs/_background_white.html.erb +3 -0
- data/app/pb_kits/playbook/pb_background/docs/_background_white.jsx +14 -0
- data/app/pb_kits/playbook/pb_background/docs/_description.md +1 -0
- data/app/pb_kits/playbook/pb_background/docs/example.yml +15 -0
- data/app/pb_kits/playbook/pb_background/docs/index.js +6 -0
- data/app/pb_kits/playbook/pb_date/_date.html.erb +64 -8
- data/app/pb_kits/playbook/pb_date/_date.jsx +115 -66
- data/app/pb_kits/playbook/pb_date/_date.scss +30 -0
- data/app/pb_kits/playbook/pb_date/date.rb +20 -9
- data/app/pb_kits/playbook/pb_date/docs/_date_alignment.html.erb +24 -0
- data/app/pb_kits/playbook/pb_date/docs/_date_alignment.jsx +35 -0
- data/app/pb_kits/playbook/pb_date/docs/_date_default.html.erb +21 -6
- data/app/pb_kits/playbook/pb_date/docs/_date_default.jsx +43 -12
- data/app/pb_kits/playbook/pb_date/docs/_date_variants.html.erb +27 -0
- data/app/pb_kits/playbook/pb_date/docs/_date_variants.jsx +43 -0
- data/app/pb_kits/playbook/pb_date/docs/example.yml +4 -0
- data/app/pb_kits/playbook/pb_date/docs/index.js +2 -0
- data/app/pb_kits/playbook/pb_date_picker/_date_picker.html.erb +19 -14
- data/app/pb_kits/playbook/pb_date_time/_date_time.html.erb +31 -0
- data/app/pb_kits/playbook/pb_date_time/_date_time.jsx +73 -0
- data/app/pb_kits/playbook/pb_date_time/_date_time.scss +26 -0
- data/app/pb_kits/playbook/pb_date_time/date_time.rb +29 -0
- data/app/pb_kits/playbook/pb_date_time/docs/_date_time_align.html.erb +17 -0
- data/app/pb_kits/playbook/pb_date_time/docs/_date_time_align.jsx +35 -0
- data/app/pb_kits/playbook/pb_date_time/docs/_date_time_default.html.erb +20 -0
- data/app/pb_kits/playbook/pb_date_time/docs/_date_time_default.jsx +38 -0
- data/app/pb_kits/playbook/pb_date_time/docs/_date_time_size.html.erb +26 -0
- data/app/pb_kits/playbook/pb_date_time/docs/_date_time_size.jsx +75 -0
- data/app/pb_kits/playbook/pb_date_time/docs/_description.md +1 -0
- data/app/pb_kits/playbook/pb_date_time/docs/example.yml +11 -0
- data/app/pb_kits/playbook/pb_date_time/docs/index.js +3 -0
- data/app/pb_kits/playbook/pb_flex/_flex.jsx +1 -1
- data/app/pb_kits/playbook/pb_flex/_flex.scss +4 -0
- data/app/pb_kits/playbook/pb_flex/flex.rb +1 -1
- data/app/pb_kits/playbook/pb_form/docs/_form_form_with.html.erb +52 -1
- data/app/pb_kits/playbook/pb_form/docs/_form_form_with_validate.html.erb +1 -1
- data/app/pb_kits/playbook/pb_form/docs/_form_simple_form.html.erb +1 -1
- data/app/pb_kits/playbook/pb_form/docs/_form_simple_form_validate.html.erb +1 -1
- data/app/pb_kits/playbook/pb_form/form_builder/date_picker_field.rb +19 -1
- data/app/pb_kits/playbook/pb_home_address_street/home_address_street.rb +1 -1
- data/app/pb_kits/playbook/pb_progress_step/progress_step.rb +2 -2
- data/app/pb_kits/playbook/pb_tooltip/_tooltip.scss +46 -19
- data/app/pb_kits/playbook/pb_tooltip/docs/_tooltip_default.html.erb +46 -10
- data/app/pb_kits/playbook/pb_tooltip/docs/_tooltip_white.html.erb +4 -4
- data/app/pb_kits/playbook/pb_tooltip/tooltip.rb +3 -2
- data/app/pb_kits/playbook/vendor.js +0 -3
- data/lib/playbook/version.rb +2 -1
- metadata +40 -20
- data/app/pb_kits/playbook/pb_collapsible/_collapsible.html.erb +0 -9
- data/app/pb_kits/playbook/pb_collapsible/_collapsible.jsx +0 -142
- data/app/pb_kits/playbook/pb_collapsible/_collapsible.scss +0 -17
- data/app/pb_kits/playbook/pb_collapsible/child_kits/_collapsible_content.html.erb +0 -7
- data/app/pb_kits/playbook/pb_collapsible/child_kits/_collapsible_main.html.erb +0 -16
- data/app/pb_kits/playbook/pb_collapsible/collapsible.rb +0 -15
- data/app/pb_kits/playbook/pb_collapsible/collapsible_content.rb +0 -21
- data/app/pb_kits/playbook/pb_collapsible/collapsible_main.rb +0 -24
- data/app/pb_kits/playbook/pb_collapsible/docs/_collapsible_dark.html.erb +0 -10
- data/app/pb_kits/playbook/pb_collapsible/docs/_collapsible_dark.jsx +0 -17
- data/app/pb_kits/playbook/pb_collapsible/docs/_collapsible_default.html.erb +0 -10
- data/app/pb_kits/playbook/pb_collapsible/docs/_collapsible_default.jsx +0 -17
- data/app/pb_kits/playbook/pb_collapsible/docs/example.yml +0 -9
- data/app/pb_kits/playbook/pb_collapsible/docs/index.js +0 -2
- data/app/pb_kits/playbook/pb_collapsible/index.js +0 -82
@@ -2,82 +2,131 @@
|
|
2
2
|
|
3
3
|
import React from 'react'
|
4
4
|
import DateTime from '../pb_kit/dateTime.js'
|
5
|
-
import { Icon } from '../'
|
5
|
+
import { Body, Caption, Icon, Title } from '../'
|
6
6
|
import classnames from 'classnames'
|
7
7
|
import { globalProps } from '../utilities/globalProps.js'
|
8
|
+
import { buildAriaProps, buildCss, buildDataProps } from '../utilities/props'
|
8
9
|
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
const day = value.toDay()
|
20
|
-
|
21
|
-
return `${month} ${day}`
|
22
|
-
}
|
23
|
-
|
24
|
-
type DateSubcomponent = {
|
25
|
-
value: DateTime,
|
10
|
+
type PbDateProps = {
|
11
|
+
alignment?: "left" | "center" | "right",
|
12
|
+
aria: Object,
|
13
|
+
className?: string,
|
14
|
+
data?: Object,
|
15
|
+
id?: string,
|
16
|
+
showDayOfWeek?: boolean,
|
17
|
+
showIcon?: boolean,
|
18
|
+
size?: string,
|
19
|
+
value: string | date,
|
26
20
|
}
|
27
21
|
|
28
|
-
const
|
29
|
-
|
30
|
-
{
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
{defaultDateString(value)}
|
41
|
-
</h3>
|
42
|
-
)
|
22
|
+
const PbDate = (props: PbDateProps) => {
|
23
|
+
const {
|
24
|
+
aria = {},
|
25
|
+
alignment = 'left',
|
26
|
+
className,
|
27
|
+
data = {},
|
28
|
+
id,
|
29
|
+
showDayOfWeek = false,
|
30
|
+
showIcon = false,
|
31
|
+
size = 'md',
|
32
|
+
value,
|
33
|
+
} = props
|
43
34
|
|
44
|
-
const
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
)
|
35
|
+
const dateTimestamp = new DateTime({ value: value })
|
36
|
+
const weekday = dateTimestamp.toWeekday()
|
37
|
+
const month = dateTimestamp.toMonth()
|
38
|
+
const day = dateTimestamp.toDay()
|
39
|
+
const year = dateTimestamp.toYear()
|
40
|
+
const currentYear = new Date().getFullYear().toString()
|
49
41
|
|
50
|
-
|
51
|
-
|
52
|
-
value?: string,
|
53
|
-
className?: string
|
54
|
-
}
|
42
|
+
const ariaProps = buildAriaProps(aria)
|
43
|
+
const dataProps = buildDataProps(data)
|
55
44
|
|
56
|
-
const
|
57
|
-
|
45
|
+
const classes = classnames(
|
46
|
+
buildCss('pb_date_kit', alignment),
|
47
|
+
globalProps(props),
|
48
|
+
className
|
49
|
+
)
|
58
50
|
|
59
|
-
if (size == 'xs')
|
60
|
-
return (
|
61
|
-
<ExtraSmallDate
|
62
|
-
{...props}
|
63
|
-
className={className}
|
64
|
-
value={date}
|
65
|
-
/>
|
66
|
-
)
|
67
|
-
if (size == 'lg')
|
68
|
-
return (
|
69
|
-
<LargeDate
|
70
|
-
{...props}
|
71
|
-
className={className}
|
72
|
-
value={date}
|
73
|
-
/>
|
74
|
-
)
|
75
51
|
return (
|
76
|
-
<
|
77
|
-
{...
|
78
|
-
|
79
|
-
|
80
|
-
|
52
|
+
<div
|
53
|
+
{...ariaProps}
|
54
|
+
{...dataProps}
|
55
|
+
className={classes}
|
56
|
+
id={id}
|
57
|
+
>
|
58
|
+
<If condition={size == 'md' || size == 'lg'}>
|
59
|
+
|
60
|
+
<Title
|
61
|
+
size={4}
|
62
|
+
tag="h4"
|
63
|
+
>
|
64
|
+
<If condition={showIcon}>
|
65
|
+
<Body
|
66
|
+
className="pb_icon_kit_container"
|
67
|
+
color="light"
|
68
|
+
tag="span"
|
69
|
+
>
|
70
|
+
<Icon
|
71
|
+
fixedWidth
|
72
|
+
icon="calendar-alt"
|
73
|
+
/>
|
74
|
+
</Body>
|
75
|
+
</If>
|
76
|
+
<If condition={showDayOfWeek}>
|
77
|
+
{weekday}
|
78
|
+
<Body
|
79
|
+
color="light"
|
80
|
+
tag="span"
|
81
|
+
text=" • "
|
82
|
+
/>
|
83
|
+
</If>
|
84
|
+
<span>
|
85
|
+
{month}
|
86
|
+
{' '}
|
87
|
+
{day}
|
88
|
+
</span>
|
89
|
+
<If condition={currentYear != year}>
|
90
|
+
<span>
|
91
|
+
{`, ${year}`}
|
92
|
+
</span>
|
93
|
+
</If>
|
94
|
+
</Title>
|
95
|
+
<Else />
|
96
|
+
<>
|
97
|
+
<If condition={showIcon}>
|
98
|
+
<Body
|
99
|
+
className="pb_icon_kit_container"
|
100
|
+
color="light"
|
101
|
+
tag="span"
|
102
|
+
>
|
103
|
+
<Icon
|
104
|
+
fixedWidth
|
105
|
+
icon="calendar-alt"
|
106
|
+
/>
|
107
|
+
</Body>
|
108
|
+
</If>
|
109
|
+
<If condition={showDayOfWeek}>
|
110
|
+
<Caption tag="div">
|
111
|
+
{weekday}
|
112
|
+
</Caption>
|
113
|
+
<Caption
|
114
|
+
color="light"
|
115
|
+
tag="div"
|
116
|
+
text=" • "
|
117
|
+
/>
|
118
|
+
</If>
|
119
|
+
<Caption tag="span">
|
120
|
+
{month}
|
121
|
+
{' '}
|
122
|
+
{day}
|
123
|
+
<If condition={currentYear != year}>
|
124
|
+
{`, ${year}`}
|
125
|
+
</If>
|
126
|
+
</Caption>
|
127
|
+
</>
|
128
|
+
</If>
|
129
|
+
</div>
|
81
130
|
)
|
82
131
|
}
|
83
132
|
|
@@ -1,2 +1,32 @@
|
|
1
1
|
@import "../pb_icon/icon";
|
2
2
|
@import "../pb_title/title";
|
3
|
+
|
4
|
+
[class^=pb_date_kit] {
|
5
|
+
display: flex;
|
6
|
+
flex-direction: row;
|
7
|
+
align-items: center;
|
8
|
+
> div, .pb_icon_kit_container {
|
9
|
+
margin-right: 4px !important;
|
10
|
+
}
|
11
|
+
|
12
|
+
&[class*=_center] {
|
13
|
+
display: flex;
|
14
|
+
flex-direction: row;
|
15
|
+
align-items: center;
|
16
|
+
justify-content: center;
|
17
|
+
margin-right: 4px !important;
|
18
|
+
}
|
19
|
+
|
20
|
+
&[class*=_right] {
|
21
|
+
display: flex;
|
22
|
+
flex-direction: row;
|
23
|
+
align-items: center;
|
24
|
+
justify-content: flex-end;
|
25
|
+
margin-left: 4px !important;
|
26
|
+
}
|
27
|
+
&.dark {
|
28
|
+
[class^=pb_title_kit] {
|
29
|
+
color: $text_dk_default !important;
|
30
|
+
}
|
31
|
+
}
|
32
|
+
}
|
@@ -10,25 +10,36 @@ module Playbook
|
|
10
10
|
partial "pb_date/date"
|
11
11
|
|
12
12
|
prop :date, required: true
|
13
|
+
prop :alignment, type: Playbook::Props::Enum,
|
14
|
+
values: %w[left center right],
|
15
|
+
default: "left"
|
16
|
+
prop :show_icon, type: Playbook::Props::Boolean,
|
17
|
+
default: false
|
18
|
+
prop :show_day_of_week, type: Playbook::Props::Boolean,
|
19
|
+
default: false
|
13
20
|
prop :size, type: Playbook::Props::Enum,
|
14
|
-
values: %w[lg sm xs],
|
15
|
-
default: "
|
21
|
+
values: %w[lg md sm xs],
|
22
|
+
default: "md"
|
16
23
|
prop :timezone, default: "America/New_York"
|
17
24
|
|
18
25
|
def classname
|
19
|
-
generate_classname("pb_date_kit")
|
26
|
+
generate_classname("pb_date_kit", alignment)
|
20
27
|
end
|
21
28
|
|
22
|
-
def
|
23
|
-
|
29
|
+
def day_of_week
|
30
|
+
pb_date_time.to_day_of_week
|
24
31
|
end
|
25
32
|
|
26
|
-
def
|
27
|
-
|
33
|
+
def day
|
34
|
+
pb_date_time.to_day
|
28
35
|
end
|
29
36
|
|
30
|
-
def
|
31
|
-
|
37
|
+
def month
|
38
|
+
pb_date_time.to_month.capitalize
|
39
|
+
end
|
40
|
+
|
41
|
+
def year
|
42
|
+
pb_date_time.to_year
|
32
43
|
end
|
33
44
|
|
34
45
|
private
|
@@ -0,0 +1,24 @@
|
|
1
|
+
<%= pb_rails("date", props: {
|
2
|
+
date: DateTime.now,
|
3
|
+
show_icon: true,
|
4
|
+
show_day_of_week: true
|
5
|
+
}) %>
|
6
|
+
|
7
|
+
<br><br>
|
8
|
+
|
9
|
+
<%= pb_rails("date", props: {
|
10
|
+
date: DateTime.now,
|
11
|
+
show_icon: true,
|
12
|
+
show_day_of_week: true,
|
13
|
+
alignment: "center"
|
14
|
+
}) %>
|
15
|
+
|
16
|
+
<br><br>
|
17
|
+
|
18
|
+
<%= pb_rails("date", props: {
|
19
|
+
date: DateTime.now,
|
20
|
+
show_icon: true,
|
21
|
+
show_day_of_week: true,
|
22
|
+
alignment: "right"
|
23
|
+
}) %>
|
24
|
+
|
@@ -0,0 +1,35 @@
|
|
1
|
+
import React from 'react'
|
2
|
+
import { Date as FormattedDate } from '../..'
|
3
|
+
|
4
|
+
const DateAlignment = (props) => {
|
5
|
+
return (
|
6
|
+
<div>
|
7
|
+
<FormattedDate
|
8
|
+
dayOfWeek
|
9
|
+
icon
|
10
|
+
value="1995-12-25"
|
11
|
+
{...props}
|
12
|
+
/>
|
13
|
+
|
14
|
+
<br />
|
15
|
+
|
16
|
+
<FormattedDate
|
17
|
+
alignment="center"
|
18
|
+
dayOfWeek
|
19
|
+
icon
|
20
|
+
value="2020-12-25"
|
21
|
+
{...props}
|
22
|
+
/>
|
23
|
+
|
24
|
+
<br />
|
25
|
+
|
26
|
+
<FormattedDate
|
27
|
+
alignment="right"
|
28
|
+
value={new Date()}
|
29
|
+
{...props}
|
30
|
+
/>
|
31
|
+
</div>
|
32
|
+
)
|
33
|
+
}
|
34
|
+
|
35
|
+
export default DateAlignment
|
@@ -1,24 +1,39 @@
|
|
1
1
|
<%= pb_rails("date", props: {
|
2
2
|
date: Date.today,
|
3
|
-
size: "
|
3
|
+
size: "sm"
|
4
4
|
}) %>
|
5
5
|
|
6
6
|
<br>
|
7
7
|
|
8
8
|
<%= pb_rails("date", props: {
|
9
|
-
date:
|
9
|
+
date: "2012-08-02T15:49:29Z",
|
10
|
+
size: "sm"
|
10
11
|
}) %>
|
11
12
|
|
12
13
|
<br>
|
13
14
|
|
14
15
|
<%= pb_rails("date", props: {
|
15
|
-
date:
|
16
|
-
|
16
|
+
date: "2017-12-02T15:49:29Z",
|
17
|
+
show_day_of_week: true,
|
18
|
+
size: "sm"
|
19
|
+
}) %>
|
20
|
+
|
21
|
+
<br>
|
22
|
+
<br>
|
23
|
+
|
24
|
+
<%= pb_rails("date", props: {
|
25
|
+
date: Date.today,
|
26
|
+
}) %>
|
27
|
+
|
28
|
+
<br>
|
29
|
+
|
30
|
+
<%= pb_rails("date", props: {
|
31
|
+
date: "2012-08-02T15:49:29Z",
|
17
32
|
}) %>
|
18
33
|
|
19
34
|
<br>
|
20
35
|
|
21
36
|
<%= pb_rails("date", props: {
|
22
|
-
date:
|
23
|
-
|
37
|
+
date: "2017-12-02T15:49:29Z",
|
38
|
+
show_day_of_week: true
|
24
39
|
}) %>
|
@@ -1,28 +1,59 @@
|
|
1
1
|
import React from 'react'
|
2
|
-
import { Date } from '../../'
|
2
|
+
import { Date as FormattedDate } from '../../'
|
3
3
|
|
4
|
-
const DateDefault = () => {
|
4
|
+
const DateDefault = (props) => {
|
5
5
|
return (
|
6
|
-
|
7
|
-
<
|
8
|
-
size="
|
9
|
-
value=
|
6
|
+
<>
|
7
|
+
<FormattedDate
|
8
|
+
size="sm"
|
9
|
+
value={new Date()}
|
10
|
+
{...props}
|
10
11
|
/>
|
11
12
|
|
12
13
|
<br />
|
13
14
|
|
14
|
-
<
|
15
|
-
|
15
|
+
<FormattedDate
|
16
|
+
size="sm"
|
17
|
+
value="2012-08-03"
|
18
|
+
{...props}
|
16
19
|
/>
|
17
20
|
|
18
21
|
<br />
|
19
22
|
|
20
|
-
<
|
21
|
-
|
22
|
-
|
23
|
+
<FormattedDate
|
24
|
+
showDayOfWeek
|
25
|
+
size="sm"
|
26
|
+
value="2017-12-03"
|
27
|
+
{...props}
|
23
28
|
/>
|
24
|
-
|
29
|
+
|
30
|
+
<br />
|
31
|
+
<br />
|
32
|
+
|
33
|
+
<FormattedDate
|
34
|
+
value={new Date()}
|
35
|
+
{...props}
|
36
|
+
/>
|
37
|
+
|
38
|
+
<br />
|
39
|
+
|
40
|
+
<FormattedDate
|
41
|
+
value="2012-08-03"
|
42
|
+
{...props}
|
43
|
+
/>
|
44
|
+
|
45
|
+
<br />
|
46
|
+
|
47
|
+
<FormattedDate
|
48
|
+
showDayOfWeek
|
49
|
+
value="2017-12-03"
|
50
|
+
{...props}
|
51
|
+
/>
|
52
|
+
</>
|
25
53
|
)
|
26
54
|
}
|
27
55
|
|
28
56
|
export default DateDefault
|
57
|
+
|
58
|
+
// *Development Note* - We are reviewing this kit for a potential name change due to naming collisions when `new Date()` is used.
|
59
|
+
// To avoid this bug, please use name spacing as shown in the code examples. ie `import { Date as AliasedComponentName } from '../../'
|