playbook_ui 6.3.1 → 6.4.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/packs/site_styles/docs/_kit_doc.scss +0 -1
- data/app/pb_kits/playbook/pb_button/_button_mixins.scss +31 -17
- data/app/pb_kits/playbook/pb_button_toolbar/_button_toolbar.scss +16 -8
- data/app/pb_kits/playbook/pb_caption/_caption.jsx +3 -1
- data/app/pb_kits/playbook/pb_caption/_caption.scss +3 -0
- data/app/pb_kits/playbook/pb_caption/caption.rb +4 -1
- data/app/pb_kits/playbook/pb_caption/docs/_caption_variants.html.erb +1 -0
- data/app/pb_kits/playbook/pb_caption/docs/_caption_variants.jsx +16 -0
- data/app/pb_kits/playbook/pb_caption/docs/_caption_variants.md +3 -0
- data/app/pb_kits/playbook/pb_caption/docs/example.yml +2 -0
- data/app/pb_kits/playbook/pb_caption/docs/index.js +1 -0
- data/app/pb_kits/playbook/pb_card/_card_mixin.scss +1 -0
- data/app/pb_kits/playbook/pb_checkbox/_checkbox.scss +12 -6
- data/app/pb_kits/playbook/pb_date/_date.html.erb +32 -8
- data/app/pb_kits/playbook/pb_date/_date.jsx +76 -67
- data/app/pb_kits/playbook/pb_date/_date.scss +25 -0
- data/app/pb_kits/playbook/pb_date/date.rb +20 -11
- 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 +32 -0
- data/app/pb_kits/playbook/pb_date/docs/_date_default.html.erb +1 -9
- data/app/pb_kits/playbook/pb_date/docs/_date_default_react.jsx +20 -0
- data/app/pb_kits/playbook/pb_date/docs/_date_default_react.md +3 -0
- data/app/pb_kits/playbook/pb_date/docs/_date_timezone.html.erb +51 -0
- data/app/pb_kits/playbook/pb_date/docs/_date_timezone.md +6 -0
- 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 +39 -0
- data/app/pb_kits/playbook/pb_date/docs/_description.md +2 -0
- data/app/pb_kits/playbook/pb_date/docs/example.yml +6 -2
- data/app/pb_kits/playbook/pb_date/docs/index.js +3 -1
- data/app/pb_kits/playbook/pb_date_time_stacked/docs/_date_time_stacked_dark.jsx +1 -1
- data/app/pb_kits/playbook/pb_date_time_stacked/docs/_date_time_stacked_default.jsx +1 -1
- data/app/pb_kits/playbook/pb_form_pill/_form_pill.scss +5 -2
- data/app/pb_kits/playbook/pb_icon/docs/_icon_default_dark.html.erb +3 -1
- data/app/pb_kits/playbook/pb_icon/docs/_icon_default_dark.jsx +7 -5
- data/app/pb_kits/playbook/pb_nav/_horizontal_nav.scss +6 -4
- data/app/pb_kits/playbook/pb_nav/_vertical_nav.scss +18 -14
- data/app/pb_kits/playbook/pb_radio/_radio.scss +9 -4
- data/app/pb_kits/playbook/pb_select/_select.scss +8 -4
- data/app/pb_kits/playbook/pb_selectable_card/_selectable_card.scss +6 -3
- data/app/pb_kits/playbook/pb_selectable_icon/_selectable_icon.scss +35 -37
- data/app/pb_kits/playbook/pb_table/styles/_hover.scss +15 -12
- data/app/pb_kits/playbook/pb_table/styles/_mobile.scss +6 -4
- data/app/pb_kits/playbook/pb_table/styles/_table-dark.scss +6 -4
- data/app/pb_kits/playbook/pb_text_input/_text_input.scss +4 -4
- data/app/pb_kits/playbook/pb_time/_time.jsx +7 -5
- data/app/pb_kits/playbook/pb_time/docs/_time_dark.jsx +0 -2
- data/app/pb_kits/playbook/pb_time/docs/_time_default.jsx +1 -3
- data/app/pb_kits/playbook/pb_time/docs/_time_timestamp.jsx +0 -3
- data/app/pb_kits/playbook/pb_time/docs/_time_timezone.jsx +59 -0
- data/app/pb_kits/playbook/pb_time/docs/_time_timezone.md +11 -0
- data/app/pb_kits/playbook/pb_time/docs/example.yml +1 -0
- data/app/pb_kits/playbook/pb_time/docs/index.js +1 -0
- data/app/pb_kits/playbook/pb_title/_title.jsx +1 -1
- data/app/pb_kits/playbook/pb_title/_title.scss +5 -5
- data/app/pb_kits/playbook/pb_title/docs/_title_variants.html.erb +1 -0
- data/app/pb_kits/playbook/pb_title/docs/_title_variants.jsx +17 -0
- data/app/pb_kits/playbook/pb_title/docs/_title_variants.md +3 -0
- data/app/pb_kits/playbook/pb_title/docs/example.yml +2 -0
- data/app/pb_kits/playbook/pb_title/docs/index.js +1 -0
- data/app/pb_kits/playbook/pb_typeahead/_typeahead.scss +4 -2
- data/lib/playbook/version.rb +1 -1
- metadata +17 -2
- data/app/pb_kits/playbook/pb_date/docs/_date_default.jsx +0 -28
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 0c5b7e2c43b42ee78da647dd0633e8377ec033c91290dc4bc2cedcd6c4d8afff
|
4
|
+
data.tar.gz: 42acc945643e2a6269fd8fc900fdc8874c5a4fcb27b26daab9b362d4851a1c6a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 4c07c0929e4c7a4cb31de00fad7a166bdbe07cdb55bc64c2fc268afd1509acfbd2b2f3814393d38c044289d930b56c1ede0e7a0dc687730fe67e5caf19b6d241
|
7
|
+
data.tar.gz: 2964f0ebeec2ae295b307f628d4a1076cc6d6a034aefafe98c8bd7db1675dbabe451b8faf6d93326b8bb83c9e1245d9a34572a7d00edb6a2028cc204464cd47a
|
@@ -10,7 +10,8 @@ $pb_button_size: 40px;
|
|
10
10
|
$pb_button_v_padding: 7px;
|
11
11
|
$pb_button_h_padding: 34px;
|
12
12
|
$pb_button_hover_darken: 4%;
|
13
|
-
$pb_button_border_width:
|
13
|
+
$pb_button_border_width: 0px;
|
14
|
+
|
14
15
|
|
15
16
|
@mixin pb_button($bg: $primary_action, $color: $text_dk_default, $border: transparent) {
|
16
17
|
text-rendering: optimizeLegibility;
|
@@ -47,16 +48,17 @@ $pb_button_border_width: 1px;
|
|
47
48
|
visibility: visible;
|
48
49
|
}
|
49
50
|
|
50
|
-
&:hover {
|
51
|
+
&:hover, &:focus {
|
51
52
|
outline: none;
|
53
|
+
|
52
54
|
}
|
53
55
|
|
54
|
-
&:active
|
55
|
-
&:focus {
|
56
|
+
&:active {
|
56
57
|
outline: none;
|
57
58
|
border-width: $pb_button_border_width;
|
58
59
|
border-color: darken($bg, $pb_button_hover_darken);
|
59
60
|
}
|
61
|
+
|
60
62
|
};
|
61
63
|
|
62
64
|
@mixin pb_button_hover($bg: darken($primary_action, $pb_button_hover_darken)){
|
@@ -67,8 +69,10 @@ $pb_button_border_width: 1px;
|
|
67
69
|
@mixin pb_button_primary {
|
68
70
|
@include pb_button;
|
69
71
|
|
70
|
-
|
71
|
-
|
72
|
+
@media (hover:hover) {
|
73
|
+
&:hover {
|
74
|
+
@include pb_button_hover;
|
75
|
+
}
|
72
76
|
}
|
73
77
|
}
|
74
78
|
|
@@ -76,17 +80,21 @@ $pb_button_border_width: 1px;
|
|
76
80
|
@mixin pb_button_secondary {
|
77
81
|
@include pb_button(rgba($primary_action, 0.05), $primary_action);
|
78
82
|
|
79
|
-
|
80
|
-
|
81
|
-
|
83
|
+
@media (hover:hover) {
|
84
|
+
&:hover {
|
85
|
+
@include pb_button_hover(rgba($primary_action, $opacity_3));
|
86
|
+
}
|
87
|
+
}
|
82
88
|
}
|
83
89
|
|
84
90
|
// Link =========================
|
85
91
|
@mixin pb_button_link {
|
86
92
|
@include pb_button($transparent, $primary_action);
|
87
93
|
|
88
|
-
|
89
|
-
|
94
|
+
@media (hover:hover) {
|
95
|
+
&:hover {
|
96
|
+
@include pb_button_hover($transparent);
|
97
|
+
}
|
90
98
|
}
|
91
99
|
}
|
92
100
|
|
@@ -120,8 +128,10 @@ $pb_button_border_width: 1px;
|
|
120
128
|
@mixin pb_button_primary_dark{
|
121
129
|
@include pb_button($primary_action);
|
122
130
|
|
123
|
-
|
124
|
-
|
131
|
+
@media (hover:hover) {
|
132
|
+
&:hover {
|
133
|
+
@include pb_button_hover($bg: darken($primary_action, $pb_button_hover_darken));
|
134
|
+
}
|
125
135
|
}
|
126
136
|
}
|
127
137
|
|
@@ -129,8 +139,10 @@ $pb_button_border_width: 1px;
|
|
129
139
|
@mixin pb_button_secondary_dark{
|
130
140
|
@include pb_button(rgba($white, 0.2), $white);
|
131
141
|
|
132
|
-
|
133
|
-
|
142
|
+
@media (hover:hover) {
|
143
|
+
&:hover {
|
144
|
+
@include pb_button_hover(rgba($primary_action, $opacity_2));
|
145
|
+
}
|
134
146
|
}
|
135
147
|
}
|
136
148
|
|
@@ -138,8 +150,10 @@ $pb_button_border_width: 1px;
|
|
138
150
|
@mixin pb_button_link_dark {
|
139
151
|
@include pb_button($transparent, $primary_action);
|
140
152
|
|
141
|
-
|
142
|
-
|
153
|
+
@media (hover:hover) {
|
154
|
+
&:hover {
|
155
|
+
@include pb_button_hover($transparent);
|
156
|
+
}
|
143
157
|
}
|
144
158
|
}
|
145
159
|
|
@@ -13,13 +13,17 @@
|
|
13
13
|
& > [class^=pb_button] {
|
14
14
|
margin-right: $space-xs;
|
15
15
|
|
16
|
-
|
17
|
-
|
16
|
+
@media (hover:hover) {
|
17
|
+
&:hover {
|
18
|
+
background-color:darken($royal, 20%);
|
19
|
+
}
|
18
20
|
}
|
19
21
|
|
20
22
|
&[class*=secondary] {
|
21
|
-
|
22
|
-
|
23
|
+
@media (hover:hover) {
|
24
|
+
&:hover {
|
25
|
+
background-color:rgba($primary_action, $opacity_3)
|
26
|
+
}
|
23
27
|
}
|
24
28
|
}
|
25
29
|
|
@@ -42,13 +46,17 @@
|
|
42
46
|
width: 100%;
|
43
47
|
margin-bottom: $space-xs;
|
44
48
|
|
45
|
-
|
46
|
-
|
49
|
+
@media (hover:hover) {
|
50
|
+
&:hover {
|
51
|
+
background-color:darken($royal, 20%);
|
52
|
+
}
|
47
53
|
}
|
48
54
|
|
49
55
|
&[class*=secondary] {
|
50
|
-
|
51
|
-
|
56
|
+
@media (hover:hover) {
|
57
|
+
&:hover {
|
58
|
+
background-color:rgba($primary_action, $opacity_3)
|
59
|
+
}
|
52
60
|
}
|
53
61
|
}
|
54
62
|
|
@@ -14,6 +14,7 @@ type CaptionProps = {
|
|
14
14
|
size?: "xs" | "sm" | "md" | "lg" | "xl",
|
15
15
|
tag?: "h1" | "h2" | "h3" | "h4" | "h5" | "h6" | "p" | "span" | "div",
|
16
16
|
text?: string,
|
17
|
+
variant?: null | "link",
|
17
18
|
}
|
18
19
|
|
19
20
|
const Caption = (props: CaptionProps) => {
|
@@ -26,13 +27,14 @@ const Caption = (props: CaptionProps) => {
|
|
26
27
|
size = 'md',
|
27
28
|
tag = 'div',
|
28
29
|
text,
|
30
|
+
variant = null,
|
29
31
|
} = props
|
30
32
|
const Tag = `${tag}`
|
31
33
|
|
32
34
|
const ariaProps = buildAriaProps(aria)
|
33
35
|
const dataProps = buildDataProps(data)
|
34
36
|
const css = classnames(
|
35
|
-
buildCss('pb_caption_kit', size),
|
37
|
+
buildCss('pb_caption_kit', size, variant),
|
36
38
|
className,
|
37
39
|
globalProps(props)
|
38
40
|
)
|
@@ -14,9 +14,12 @@ module Playbook
|
|
14
14
|
values: %w[h1 h2 h3 h4 h5 h6 p span div],
|
15
15
|
default: "div"
|
16
16
|
prop :text
|
17
|
+
prop :variant, type: Playbook::Props::Enum,
|
18
|
+
values: [nil, "link"],
|
19
|
+
default: nil
|
17
20
|
|
18
21
|
def classname
|
19
|
-
generate_classname("pb_caption_kit", size)
|
22
|
+
generate_classname("pb_caption_kit", size, variant)
|
20
23
|
end
|
21
24
|
end
|
22
25
|
end
|
@@ -0,0 +1 @@
|
|
1
|
+
<%= pb_rails("caption", props: { text: "Subcaption (link)", size: 'xs', variant: "link" }) %>
|
@@ -1,8 +1,10 @@
|
|
1
1
|
@import "../tokens/colors";
|
2
|
+
@import "../tokens/transition";
|
2
3
|
$transition: $transition_cubic;
|
3
4
|
|
4
5
|
[class^=pb_checkbox_kit] {
|
5
6
|
display: inline-flex;
|
7
|
+
cursor: pointer;
|
6
8
|
.pb_checkbox_label {
|
7
9
|
padding-left: $space_xs;
|
8
10
|
cursor: pointer;
|
@@ -15,7 +17,8 @@ $transition: $transition_cubic;
|
|
15
17
|
width: 22px;
|
16
18
|
border: solid $border_light 2px;
|
17
19
|
border-radius: $border_rad_light;
|
18
|
-
|
20
|
+
transition: background $transition_default ease, border-color $transition_default ease;
|
21
|
+
.check_icon {
|
19
22
|
opacity: 0;
|
20
23
|
position: relative;
|
21
24
|
top: -2px;
|
@@ -26,9 +29,10 @@ $transition: $transition_cubic;
|
|
26
29
|
|
27
30
|
}
|
28
31
|
}
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
+
@media (hover:hover) {
|
33
|
+
&:hover input ~ .pb_checkbox_checkmark {
|
34
|
+
border-color: $primary_action;
|
35
|
+
}
|
32
36
|
}
|
33
37
|
|
34
38
|
input {
|
@@ -58,8 +62,10 @@ $transition: $transition_cubic;
|
|
58
62
|
border-color: $primary_action;
|
59
63
|
}
|
60
64
|
|
61
|
-
|
62
|
-
|
65
|
+
@media (hover:hover) {
|
66
|
+
&:hover .pb_checkbox_checkmark {
|
67
|
+
border-color: $primary_action;
|
68
|
+
}
|
63
69
|
}
|
64
70
|
|
65
71
|
&.error {
|
@@ -1,14 +1,38 @@
|
|
1
1
|
<%= content_tag(:div,
|
2
2
|
id: object.id,
|
3
3
|
data: object.data,
|
4
|
-
class: object.classname
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
4
|
+
class: object.classname,
|
5
|
+
aria: object.aria) do %>
|
6
|
+
|
7
|
+
<!-- icon -->
|
8
|
+
<% if object.show_icon %>
|
9
|
+
<%= pb_rails("body", props: {
|
10
|
+
color: "light",
|
11
|
+
tag: "div",
|
12
|
+
}) do %>
|
13
|
+
<%= pb_rails("icon", props: { icon: "calendar-alt", fixed_width: true }) %>
|
14
|
+
<% end %>
|
15
|
+
<% end %>
|
16
|
+
|
17
|
+
<!-- day_of_week -->
|
18
|
+
<% if object.show_day_of_week %>
|
19
|
+
<%= pb_rails("title", props: { tag: "div", text: object.date_day_of_week, size: 4 }) %>
|
20
|
+
<%= pb_rails("body", props: {
|
21
|
+
text: "•",
|
22
|
+
color: "light",
|
23
|
+
tag: "div",
|
24
|
+
}) %>
|
25
|
+
<% end %>
|
26
|
+
|
27
|
+
<!-- month day, year -->
|
28
|
+
|
29
|
+
<%# if not current year %>
|
30
|
+
<% if object.year.to_s == DateTime.now.year.to_s %>
|
31
|
+
<%= pb_rails("title", props: { tag: "div", text: "#{object.month} #{object.day}", size: 4 }) %>
|
32
|
+
<%# if is current year %>
|
33
|
+
<% else %>
|
34
|
+
<%= pb_rails("title", props: { tag: "div", text: "#{object.month} #{object.day}, #{object.year}", size: 4 }) %>
|
12
35
|
<% end %>
|
36
|
+
|
13
37
|
<% end %>
|
14
38
|
|
@@ -2,82 +2,91 @@
|
|
2
2
|
|
3
3
|
import React from 'react'
|
4
4
|
import DateTime from '../pb_kit/dateTime.js'
|
5
|
-
import { Icon } from '../'
|
5
|
+
import { Body, 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
|
-
const month = value.toMonth().toUpperCase()
|
19
|
-
const day = value.toDay()
|
20
|
-
|
21
|
-
return `${month} ${day}`
|
22
|
-
}
|
23
|
-
|
24
|
-
type DateSubcomponent = {
|
25
|
-
value: DateTime,
|
10
|
+
type PbDateProps = {
|
11
|
+
aria: Object,
|
12
|
+
date: string | date,
|
13
|
+
className?: string,
|
14
|
+
data?: Object,
|
15
|
+
id?: string,
|
16
|
+
showIcon?: boolean,
|
17
|
+
showDayOfWeek?: boolean,
|
18
|
+
alignment?: "left" | "center" | "right"
|
26
19
|
}
|
27
20
|
|
28
|
-
const
|
29
|
-
|
30
|
-
{
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
/>
|
40
|
-
{defaultDateString(value)}
|
41
|
-
</h3>
|
42
|
-
)
|
43
|
-
|
44
|
-
const LargeDate = ({ value, ...props }: DateSubcomponent) => (
|
45
|
-
<h3 className={classnames('pb_title_kit_3', globalProps(props))}>
|
46
|
-
{largeDateString(value)}
|
47
|
-
</h3>
|
48
|
-
)
|
21
|
+
const PbDate = (props: PbDateProps) => {
|
22
|
+
const {
|
23
|
+
aria = {},
|
24
|
+
alignment = 'left',
|
25
|
+
className,
|
26
|
+
date,
|
27
|
+
data = {},
|
28
|
+
id,
|
29
|
+
showDayOfWeek = false,
|
30
|
+
showIcon = false,
|
31
|
+
} = props
|
49
32
|
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
33
|
+
const dateTimestamp = new DateTime({ value: date })
|
34
|
+
const weekday = dateTimestamp.toWeekday()
|
35
|
+
const month = dateTimestamp.toMonth()
|
36
|
+
const day = dateTimestamp.toDay()
|
37
|
+
const year = dateTimestamp.toYear()
|
38
|
+
const currentYear = new Date().getFullYear().toString()
|
55
39
|
|
56
|
-
const
|
57
|
-
const
|
40
|
+
const ariaProps = buildAriaProps(aria)
|
41
|
+
const dataProps = buildDataProps(data)
|
58
42
|
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
value={date}
|
65
|
-
/>
|
66
|
-
)
|
67
|
-
if (size == 'lg')
|
68
|
-
return (
|
69
|
-
<LargeDate
|
70
|
-
{...props}
|
71
|
-
className={className}
|
72
|
-
value={date}
|
73
|
-
/>
|
74
|
-
)
|
43
|
+
const classes = classnames(
|
44
|
+
className,
|
45
|
+
buildCss('pb_date_kit', alignment),
|
46
|
+
globalProps(props)
|
47
|
+
)
|
75
48
|
return (
|
76
|
-
<
|
77
|
-
{...
|
78
|
-
|
79
|
-
|
80
|
-
|
49
|
+
<div
|
50
|
+
{...ariaProps}
|
51
|
+
{...dataProps}
|
52
|
+
className={classes}
|
53
|
+
id={id}
|
54
|
+
>
|
55
|
+
<Title
|
56
|
+
size={4}
|
57
|
+
tag="h4"
|
58
|
+
>
|
59
|
+
<If condition={showIcon}>
|
60
|
+
<Body
|
61
|
+
color="light"
|
62
|
+
tag="span"
|
63
|
+
>
|
64
|
+
<Icon
|
65
|
+
fixedWidth
|
66
|
+
icon="calendar-alt"
|
67
|
+
/>
|
68
|
+
</Body>
|
69
|
+
</If>
|
70
|
+
<If condition={showDayOfWeek}>
|
71
|
+
{weekday}
|
72
|
+
<Body
|
73
|
+
color="light"
|
74
|
+
tag="span"
|
75
|
+
text=" • "
|
76
|
+
/>
|
77
|
+
</If>
|
78
|
+
<span>
|
79
|
+
{month}
|
80
|
+
{' '}
|
81
|
+
{day}
|
82
|
+
</span>
|
83
|
+
<If condition={currentYear != year}>
|
84
|
+
<span>
|
85
|
+
{` , ${year}`}
|
86
|
+
</span>
|
87
|
+
</If>
|
88
|
+
</Title>
|
89
|
+
</div>
|
81
90
|
)
|
82
91
|
}
|
83
92
|
|