playbook_ui 2.9.8 → 2.9.9
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 -0
- data/app/pb_kits/playbook/index.js +4 -0
- data/app/pb_kits/playbook/kits/pb_date_stacked.js +4 -0
- data/app/pb_kits/playbook/kits/pb_multiple_users.js +4 -0
- data/app/pb_kits/playbook/kits/pb_progress_pills.js +4 -0
- data/app/pb_kits/playbook/packs/examples.js +6 -0
- data/app/pb_kits/playbook/packs/kits.js +5 -0
- data/app/pb_kits/playbook/packs/site_styles/docs/_color_utilities.scss +1 -0
- data/app/pb_kits/playbook/pb_avatar/_avatar.jsx +21 -12
- data/app/pb_kits/playbook/pb_avatar/docs/_avatar_default.jsx +5 -5
- data/app/pb_kits/playbook/pb_bar_graph/bar_graph.rb +1 -1
- data/app/pb_kits/playbook/pb_caption/caption.rb +0 -1
- data/app/pb_kits/playbook/pb_card/_card.jsx +18 -6
- data/app/pb_kits/playbook/pb_card/_card.scss +33 -0
- data/app/pb_kits/playbook/pb_card/card.rb +15 -1
- data/app/pb_kits/playbook/pb_card/docs/_card_highlight.html.erb +9 -0
- data/app/pb_kits/playbook/pb_card/docs/_card_highlight.jsx +20 -0
- data/app/pb_kits/playbook/pb_card/docs/example.yml +3 -0
- data/app/pb_kits/playbook/pb_card/docs/index.js +1 -0
- data/app/pb_kits/playbook/pb_contact/contact.rb +0 -1
- data/app/pb_kits/playbook/pb_dashboard_value/_dashboard_value.jsx +15 -33
- data/app/pb_kits/playbook/pb_dashboard_value/docs/_dashboard_value_align.jsx +12 -9
- data/app/pb_kits/playbook/pb_dashboard_value/docs/_dashboard_value_default.jsx +12 -9
- data/app/pb_kits/playbook/pb_date/date.rb +1 -1
- data/app/pb_kits/playbook/pb_date_stacked/_date_stacked.html.erb +13 -0
- data/app/pb_kits/playbook/pb_date_stacked/_date_stacked.jsx +83 -0
- data/app/pb_kits/playbook/pb_date_stacked/_date_stacked.scss +35 -0
- data/app/pb_kits/playbook/pb_date_stacked/date_stacked.rb +69 -0
- data/app/pb_kits/playbook/pb_date_stacked/docs/_date_stacked_align.html.erb +21 -0
- data/app/pb_kits/playbook/pb_date_stacked/docs/_date_stacked_align.jsx +33 -0
- data/app/pb_kits/playbook/pb_date_stacked/docs/_date_stacked_dark.html.erb +5 -0
- data/app/pb_kits/playbook/pb_date_stacked/docs/_date_stacked_dark.jsx +24 -0
- data/app/pb_kits/playbook/pb_date_stacked/docs/_date_stacked_default.html.erb +5 -0
- data/app/pb_kits/playbook/pb_date_stacked/docs/_date_stacked_default.jsx +18 -0
- data/app/pb_kits/playbook/pb_date_stacked/docs/_date_stacked_not_current_year.html.erb +5 -0
- data/app/pb_kits/playbook/pb_date_stacked/docs/_date_stacked_not_current_year.jsx +18 -0
- data/app/pb_kits/playbook/pb_date_stacked/docs/_date_stacked_reverse.html.erb +5 -0
- data/app/pb_kits/playbook/pb_date_stacked/docs/_date_stacked_reverse.jsx +18 -0
- data/app/pb_kits/playbook/pb_date_stacked/docs/_date_stacked_sizes.html.erb +5 -0
- data/app/pb_kits/playbook/pb_date_stacked/docs/_date_stacked_sizes.jsx +19 -0
- data/app/pb_kits/playbook/pb_date_stacked/docs/example.yml +22 -0
- data/app/pb_kits/playbook/pb_date_stacked/docs/index.js +7 -0
- data/app/pb_kits/playbook/pb_fixed_confirmation_toast/fixed_confirmation_toast.rb +0 -1
- data/app/pb_kits/playbook/pb_kit/pb_date_time.rb +3 -1
- data/app/pb_kits/playbook/pb_layout/layout.rb +0 -1
- data/app/pb_kits/playbook/pb_loading_inline/loading_inline.rb +5 -5
- data/app/pb_kits/playbook/pb_multiple_users/_multiple_users.html.erb +14 -0
- data/app/pb_kits/playbook/pb_multiple_users/_multiple_users.jsx +69 -0
- data/app/pb_kits/playbook/pb_multiple_users/_multiple_users.scss +50 -0
- data/app/pb_kits/playbook/pb_multiple_users/docs/_multiple_users_default.html.erb +39 -0
- data/app/pb_kits/playbook/pb_multiple_users/docs/_multiple_users_default.jsx +46 -0
- data/app/pb_kits/playbook/pb_multiple_users/docs/_multiple_users_reverse.html.erb +41 -0
- data/app/pb_kits/playbook/pb_multiple_users/docs/_multiple_users_reverse.jsx +50 -0
- data/app/pb_kits/playbook/pb_multiple_users/docs/example.yml +9 -0
- data/app/pb_kits/playbook/pb_multiple_users/docs/index.js +2 -0
- data/app/pb_kits/playbook/pb_multiple_users/multiple_users.rb +32 -0
- data/app/pb_kits/playbook/pb_online_status/online_status.rb +2 -2
- data/app/pb_kits/playbook/pb_person_contact/person_contact.rb +2 -2
- data/app/pb_kits/playbook/pb_progress_pills/_progress_pills.html.erb +19 -0
- data/app/pb_kits/playbook/pb_progress_pills/_progress_pills.jsx +51 -0
- data/app/pb_kits/playbook/pb_progress_pills/_progress_pills.scss +42 -0
- data/app/pb_kits/playbook/pb_progress_pills/docs/_progress_pills_dark.html.erb +1 -0
- data/app/pb_kits/playbook/pb_progress_pills/docs/_progress_pills_dark.jsx +21 -0
- data/app/pb_kits/playbook/pb_progress_pills/docs/_progress_pills_default.html.erb +1 -0
- data/app/pb_kits/playbook/pb_progress_pills/docs/_progress_pills_default.jsx +18 -0
- data/app/pb_kits/playbook/pb_progress_pills/docs/_progress_pills_status.html.erb +1 -0
- data/app/pb_kits/playbook/pb_progress_pills/docs/_progress_pills_status.jsx +20 -0
- data/app/pb_kits/playbook/pb_progress_pills/docs/example.yml +12 -0
- data/app/pb_kits/playbook/pb_progress_pills/docs/index.js +3 -0
- data/app/pb_kits/playbook/pb_progress_pills/progress_pills.rb +49 -0
- data/app/pb_kits/playbook/pb_progress_simple/progress_simple.rb +3 -3
- data/app/pb_kits/playbook/pb_stat_change/stat_change.rb +5 -5
- data/app/pb_kits/playbook/pb_time/time.rb +2 -2
- data/app/pb_kits/playbook/pb_title_count/title_count.rb +2 -2
- data/app/pb_kits/playbook/pb_user/docs/_user_dark.html.erb +42 -0
- data/app/pb_kits/playbook/pb_user/docs/_user_text_only_dark.html.erb +19 -0
- data/app/pb_kits/playbook/tokens/_colors.scss +4 -0
- data/app/views/playbook/pages/utilities.html.slim +4 -4
- data/lib/playbook/version.rb +1 -1
- data/lib/tasks/pb_release.rake +0 -2
- metadata +49 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: ce4e8884441a2a18b3dfb1d5e6ad3d39c1d62445cc103a084bd7963038763b47
|
4
|
+
data.tar.gz: 69d4ddeba0f3cabd308908ef4eee403fe705291f144ccf8238e78cb0e24aa29a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: cfe8e4dcc247ea4c4934ea29297a0c4daa3bebf2a456d2d064dee847f1028a10e262b6ccbeafcd986c5d9a1ac75550de632165c9ab53dfecf215fe90dccea9ad
|
7
|
+
data.tar.gz: 3bdad6a98ef95b44e8985100f9c9530a56e60dab89bc530a31b0db80e641631e93c7528787a57ef6ac3dfc44208b6a753fd05caaa7cfc2e55638f9786eb1c243
|
@@ -11,6 +11,7 @@
|
|
11
11
|
@import 'pb_dashboard_value/dashboard_value';
|
12
12
|
@import 'pb_date/date';
|
13
13
|
@import 'pb_date_range_inline/date_range_inline';
|
14
|
+
@import 'pb_date_stacked/date_stacked';
|
14
15
|
@import 'pb_date_year_stacked/date_year_stacked';
|
15
16
|
@import 'pb_distribution_bar/distribution_bar';
|
16
17
|
@import 'pb_fixed_confirmation_toast/fixed_confirmation_toast';
|
@@ -27,11 +28,13 @@
|
|
27
28
|
@import 'pb_list/list';
|
28
29
|
@import 'pb_loading_inline/loading_inline';
|
29
30
|
@import 'pb_message/message';
|
31
|
+
@import 'pb_multiple_users/multiple_users';
|
30
32
|
@import 'pb_nav/nav';
|
31
33
|
@import 'pb_online_status/online_status';
|
32
34
|
@import 'pb_person/person';
|
33
35
|
@import 'pb_person_contact/person_contact';
|
34
36
|
@import 'pb_pill/pill';
|
37
|
+
@import 'pb_progress_pills/progress_pills';
|
35
38
|
@import 'pb_progress_simple/progress_simple';
|
36
39
|
@import 'pb_section_separator/section_separator';
|
37
40
|
@import 'pb_source/source';
|
@@ -28,11 +28,13 @@ import List from "./pb_list/_list.jsx"
|
|
28
28
|
import ListItem from "./pb_list/_list_item.jsx"
|
29
29
|
import LoadingInline from "./pb_loading_inline/_loading_inline.jsx"
|
30
30
|
import Message from "./pb_message/_message.jsx"
|
31
|
+
import MultipleUsers from "./pb_multiple_users/_multiple_users.jsx"
|
31
32
|
import Nav from "./pb_nav/_nav.jsx"
|
32
33
|
import OnlineStatus from "./pb_online_status/_online_status.jsx"
|
33
34
|
import Person from "./pb_person/_person.jsx"
|
34
35
|
import PersonContact from "./pb_person_contact/_person_contact.jsx"
|
35
36
|
import Pill from "./pb_pill/_pill.jsx"
|
37
|
+
import ProgressPills from "./pb_progress_pills/_progress_pills.jsx"
|
36
38
|
import ProgressSimple from "./pb_progress_simple/_progress_simple.jsx"
|
37
39
|
import SectionSeparator from "./pb_section_separator/_section_separator.jsx"
|
38
40
|
import Source from "./pb_source/_source.jsx"
|
@@ -94,12 +96,14 @@ export {
|
|
94
96
|
ListItem,
|
95
97
|
LoadingInline,
|
96
98
|
Message,
|
99
|
+
MultipleUsers,
|
97
100
|
Nav,
|
98
101
|
OnlineStatus,
|
99
102
|
pbChart,
|
100
103
|
Person,
|
101
104
|
PersonContact,
|
102
105
|
Pill,
|
106
|
+
ProgressPills,
|
103
107
|
ProgressSimple,
|
104
108
|
SectionSeparator,
|
105
109
|
Source,
|
@@ -25,6 +25,7 @@ import * as Currency from "pb_currency/docs";
|
|
25
25
|
import * as DashboardValue from "pb_dashboard_value/docs";
|
26
26
|
import * as Date from "pb_date/docs";
|
27
27
|
import * as DateRangeInline from "pb_date_range_inline/docs";
|
28
|
+
import * as DateStacked from "pb_date_stacked/docs";
|
28
29
|
import * as DateYearStacked from "pb_date_year_stacked/docs";
|
29
30
|
import * as DistributionBar from "pb_distribution_bar/docs";
|
30
31
|
import * as FixedConfirmationToast from "pb_fixed_confirmation_toast/docs";
|
@@ -41,11 +42,13 @@ import * as LineGraph from "pb_line_graph/docs";
|
|
41
42
|
import * as list from "pb_list/docs";
|
42
43
|
import * as LoadingInline from "pb_loading_inline/docs";
|
43
44
|
import * as Message from "pb_message/docs";
|
45
|
+
import * as MultipleUsers from "pb_multiple_users/docs";
|
44
46
|
import * as Nav from "pb_nav/docs";
|
45
47
|
import * as OnlineStatus from "pb_online_status/docs";
|
46
48
|
import * as Person from "pb_person/docs";
|
47
49
|
import * as PersonContact from "pb_person_contact/docs";
|
48
50
|
import * as Pill from "pb_pill/docs";
|
51
|
+
import * as ProgressPills from "pb_progress_pills/docs";
|
49
52
|
import * as ProgressSimple from "pb_progress_simple/docs";
|
50
53
|
import * as SectionSeparator from "pb_section_separator/docs";
|
51
54
|
import * as Source from "pb_source/docs";
|
@@ -76,6 +79,7 @@ WebpackerReact.setup (Currency);
|
|
76
79
|
WebpackerReact.setup (DashboardValue);
|
77
80
|
WebpackerReact.setup (Date);
|
78
81
|
WebpackerReact.setup (DateRangeInline);
|
82
|
+
WebpackerReact.setup (DateStacked);
|
79
83
|
WebpackerReact.setup (DateYearStacked);
|
80
84
|
WebpackerReact.setup (DistributionBar);
|
81
85
|
WebpackerReact.setup (FixedConfirmationToast);
|
@@ -92,11 +96,13 @@ WebpackerReact.setup (LineGraph);
|
|
92
96
|
WebpackerReact.setup (list);
|
93
97
|
WebpackerReact.setup (LoadingInline);
|
94
98
|
WebpackerReact.setup (Message);
|
99
|
+
WebpackerReact.setup (MultipleUsers);
|
95
100
|
WebpackerReact.setup (Nav);
|
96
101
|
WebpackerReact.setup (OnlineStatus);
|
97
102
|
WebpackerReact.setup (Person);
|
98
103
|
WebpackerReact.setup (PersonContact);
|
99
104
|
WebpackerReact.setup (Pill);
|
105
|
+
WebpackerReact.setup (ProgressPills);
|
100
106
|
WebpackerReact.setup (ProgressSimple);
|
101
107
|
WebpackerReact.setup (SectionSeparator);
|
102
108
|
WebpackerReact.setup (Source);
|
@@ -11,6 +11,7 @@ import "../kits/pb_currency.js";
|
|
11
11
|
import "../kits/pb_dashboard_value.js";
|
12
12
|
import "../kits/pb_date.js";
|
13
13
|
import "../kits/pb_date_range_inline.js";
|
14
|
+
import "../kits/pb_date_stacked.js";
|
14
15
|
import "../kits/pb_date_year_stacked.js";
|
15
16
|
import "../kits/pb_distribution_bar.js";
|
16
17
|
import "../kits/pb_fixed_confirmation_toast.js";
|
@@ -26,11 +27,13 @@ import "../kits/pb_layout.js";
|
|
26
27
|
import "../kits/pb_line_graph.js";
|
27
28
|
import "../kits/pb_loading_inline.js";
|
28
29
|
import "../kits/pb_message.js";
|
30
|
+
import "../kits/pb_multiple_users.js";
|
29
31
|
import "../kits/pb_nav.js";
|
30
32
|
import "../kits/pb_online_status.js";
|
31
33
|
import "../kits/pb_person.js";
|
32
34
|
import "../kits/pb_person_contact.js";
|
33
35
|
import "../kits/pb_pill.js";
|
36
|
+
import "../kits/pb_progress_pills.js";
|
34
37
|
import "../kits/pb_progress_simple.js";
|
35
38
|
import "../kits/pb_section_separator.js";
|
36
39
|
import "../kits/pb_source.js";
|
@@ -47,3 +50,5 @@ import "../kits/pb_title_detail.js";
|
|
47
50
|
import "../kits/pb_toggle.js";
|
48
51
|
import "../kits/pb_user.js";
|
49
52
|
import "../kits/pb_user_badge.js";
|
53
|
+
|
54
|
+
|
@@ -15,6 +15,7 @@
|
|
15
15
|
@include doc-color($background_colors);
|
16
16
|
@include doc-color($card_colors);
|
17
17
|
@include doc-color($active_colors);
|
18
|
+
@include doc-color($action_colors);
|
18
19
|
@include doc-color($hover_colors);
|
19
20
|
@include doc-color($border_colors);
|
20
21
|
@include doc-color($shadow_colors);
|
@@ -10,9 +10,9 @@ import { Image } from "../"
|
|
10
10
|
type AvatarProps = {
|
11
11
|
className?: String,
|
12
12
|
name: String,
|
13
|
+
imageUrl: String,
|
13
14
|
size?: 'xs' | 'sm' | 'md' | 'lg' | 'xl',
|
14
15
|
status: 'online' | 'away',
|
15
|
-
url: String,
|
16
16
|
}
|
17
17
|
|
18
18
|
const initials = function(name) {
|
@@ -21,11 +21,11 @@ const initials = function(name) {
|
|
21
21
|
}
|
22
22
|
}
|
23
23
|
|
24
|
-
const image = function(
|
25
|
-
if (
|
24
|
+
const image = function(imageUrl, name) {
|
25
|
+
if (imageUrl) {
|
26
26
|
return (
|
27
27
|
<Image alt={name}
|
28
|
-
url={
|
28
|
+
url={imageUrl}
|
29
29
|
/>
|
30
30
|
)
|
31
31
|
}
|
@@ -38,10 +38,22 @@ const PbStatus = ({ size, status } : { size: String, status: String }) => (
|
|
38
38
|
const Avatar = ({
|
39
39
|
className,
|
40
40
|
name=null,
|
41
|
+
imageUrl,
|
41
42
|
size='md',
|
42
|
-
status
|
43
|
-
url
|
43
|
+
status=null
|
44
44
|
}: AvatarProps) => {
|
45
|
+
|
46
|
+
const statusDisplay = () => {
|
47
|
+
if(status !== null){
|
48
|
+
return (
|
49
|
+
<PbStatus
|
50
|
+
size={size}
|
51
|
+
status={status}
|
52
|
+
/>
|
53
|
+
);
|
54
|
+
}
|
55
|
+
}
|
56
|
+
|
45
57
|
const css = classnames([
|
46
58
|
`pb_avatar_kit`,
|
47
59
|
`avatar_${size}`,
|
@@ -52,16 +64,13 @@ const Avatar = ({
|
|
52
64
|
<div className={css}
|
53
65
|
data-initials={initials(name)}
|
54
66
|
>
|
55
|
-
<div
|
67
|
+
<div
|
56
68
|
className="avatar_wrapper"
|
57
69
|
data-initials={initials(name)}
|
58
70
|
>
|
59
|
-
{image(
|
71
|
+
{image(imageUrl, name)}
|
60
72
|
</div>
|
61
|
-
|
62
|
-
size={size}
|
63
|
-
status={status}
|
64
|
-
/>
|
73
|
+
{statusDisplay()}
|
65
74
|
</div>
|
66
75
|
)
|
67
76
|
}
|
@@ -5,38 +5,38 @@ function AvatarDefault() {
|
|
5
5
|
return (
|
6
6
|
<div>
|
7
7
|
<Avatar
|
8
|
+
imageUrl="https://randomuser.me/api/portraits/men/44.jpg"
|
8
9
|
name="Terry Johnson"
|
9
10
|
size="xs"
|
10
11
|
status="online"
|
11
|
-
url="https://randomuser.me/api/portraits/men/44.jpg"
|
12
12
|
/>
|
13
13
|
<br/>
|
14
14
|
<Avatar
|
15
|
+
imageUrl="https://randomuser.me/api/portraits/men/44.jpg"
|
15
16
|
name="Terry Johnson"
|
16
17
|
size="sm"
|
17
18
|
status="online"
|
18
|
-
url="https://randomuser.me/api/portraits/men/44.jpg"
|
19
19
|
/>
|
20
20
|
<br/>
|
21
21
|
<Avatar
|
22
|
+
imageUrl="https://randomuser.me/api/portraits/men/44.jpg"
|
22
23
|
name="Terry Johnson"
|
23
24
|
size="md"
|
24
25
|
status="away"
|
25
|
-
url="https://randomuser.me/api/portraits/men/44.jpg"
|
26
26
|
/>
|
27
27
|
<br/>
|
28
28
|
<Avatar
|
29
|
+
imageUrl="https://randomuser.me/api/portraits/men/44.jpg"
|
29
30
|
name="Terry Johnson"
|
30
31
|
size="lg"
|
31
32
|
status="offline"
|
32
|
-
url="https://randomuser.me/api/portraits/men/44.jpg"
|
33
33
|
/>
|
34
34
|
<br/>
|
35
35
|
<Avatar
|
36
|
+
imageUrl="https://randomuser.me/api/portraits/men/44.jpg"
|
36
37
|
name="Terry Johnson"
|
37
38
|
size="xl"
|
38
39
|
status="offline"
|
39
|
-
url="https://randomuser.me/api/portraits/men/44.jpg"
|
40
40
|
/>
|
41
41
|
</div>
|
42
42
|
)
|
@@ -1,36 +1,48 @@
|
|
1
1
|
/* @flow */
|
2
2
|
|
3
3
|
import React from 'react'
|
4
|
+
import classnames from 'classnames'
|
4
5
|
|
5
6
|
type CardPropTypes = {
|
6
7
|
children: Array<React.ReactNode> | React.ReactNode,
|
8
|
+
className?: String,
|
9
|
+
highlight?: {
|
10
|
+
position?: String,
|
11
|
+
color?: String
|
12
|
+
},
|
7
13
|
padding?: 'none' | 'xs' | 'sm' | 'md' | 'lg' | 'xl',
|
8
14
|
selected?: Boolean,
|
9
15
|
shadow?: 'none' | 'shallow' | 'default' | 'deep' | 'deeper' | 'deepest',
|
10
16
|
}
|
11
17
|
|
12
18
|
const cardCSS = ({
|
19
|
+
highlight={},
|
13
20
|
selected=false,
|
14
|
-
shadow='none'
|
21
|
+
shadow='none'
|
15
22
|
}: CardPropTypes) => {
|
16
|
-
let css = ''
|
23
|
+
let css = 'pb_card_kit'
|
24
|
+
css += highlight.position ? `_highlight_${highlight.position}` : null
|
25
|
+
css += highlight.color ? `_highlight_${highlight.color}` : null
|
17
26
|
css += selected ? '_selected' : '_deselected'
|
18
27
|
css += `_shadow_${shadow}`
|
19
28
|
return css
|
20
29
|
}
|
21
30
|
|
22
31
|
const bodyCSS = ({padding='md'}: CardPropTypes) => {
|
23
|
-
let css = ''
|
32
|
+
let css = 'pb_card_body_kit'
|
24
33
|
css += `_${padding}`
|
25
34
|
return css
|
26
35
|
}
|
27
36
|
|
28
37
|
const Card = (props: CardPropTypes) => {
|
29
|
-
const {
|
38
|
+
const {
|
39
|
+
children,
|
40
|
+
className
|
41
|
+
} = props
|
30
42
|
|
31
43
|
return (
|
32
|
-
<div className={
|
33
|
-
<div className={
|
44
|
+
<div className={classnames(cardCSS(props), className)}>
|
45
|
+
<div className={bodyCSS(props)}>
|
34
46
|
{ children }
|
35
47
|
</div>
|
36
48
|
</div>
|
@@ -6,6 +6,8 @@
|
|
6
6
|
|
7
7
|
$pb_card_border_width: 1px;
|
8
8
|
$pb_card_border_radius: $border_rad_heavier;
|
9
|
+
$pb_card_highlight_colors: map-merge($status_colors, $product_colors);
|
10
|
+
$pb_card_highlight_size: 4px;
|
9
11
|
|
10
12
|
[class^=pb_card_kit] {
|
11
13
|
position: relative;
|
@@ -29,4 +31,35 @@ $pb_card_border_radius: $border_rad_heavier;
|
|
29
31
|
box-shadow: $shadow;
|
30
32
|
}
|
31
33
|
}
|
34
|
+
|
35
|
+
@mixin pb_card_highlight($width, $height, $background){
|
36
|
+
content: "";
|
37
|
+
position: absolute;
|
38
|
+
top: 0;
|
39
|
+
left: 0;
|
40
|
+
width: $width;
|
41
|
+
height: $height;
|
42
|
+
background: $background;
|
43
|
+
z-index: 10;
|
44
|
+
}
|
45
|
+
|
46
|
+
&[class*=_highlight] {
|
47
|
+
overflow: hidden;
|
48
|
+
}
|
49
|
+
|
50
|
+
&[class*=_highlight_side] {
|
51
|
+
@each $color_name, $color_value in $pb_card_highlight_colors {
|
52
|
+
&[class*=_highlight_#{$color_name}]::before {
|
53
|
+
@include pb_card_highlight(100%, $pb_card_highlight_size, $color_value);
|
54
|
+
}
|
55
|
+
}
|
56
|
+
}
|
57
|
+
|
58
|
+
&[class*=_highlight_top] {
|
59
|
+
@each $color_name, $color_value in $pb_card_highlight_colors {
|
60
|
+
&[class*=_highlight_#{$color_name}]::before {
|
61
|
+
@include pb_card_highlight($pb_card_highlight_size, 100%, $color_value);
|
62
|
+
}
|
63
|
+
}
|
64
|
+
}
|
32
65
|
}
|
@@ -14,9 +14,15 @@ module Playbook
|
|
14
14
|
prop :shadow, type: Playbook::Props::Enum,
|
15
15
|
values: %w[none shallow default deep deeper deepest],
|
16
16
|
default: "none"
|
17
|
+
prop :highlight, type: Playbook::Props::Hash,
|
18
|
+
default: {}
|
17
19
|
|
18
20
|
def classname
|
19
|
-
generate_classname("pb_card_kit",
|
21
|
+
generate_classname("pb_card_kit",
|
22
|
+
selected_class,
|
23
|
+
shadow_class,
|
24
|
+
highlight_position_class,
|
25
|
+
highlight_color_class)
|
20
26
|
end
|
21
27
|
|
22
28
|
private
|
@@ -28,6 +34,14 @@ module Playbook
|
|
28
34
|
def shadow_class
|
29
35
|
shadow != "none" ? "shadow_#{shadow}" : nil
|
30
36
|
end
|
37
|
+
|
38
|
+
def highlight_position_class
|
39
|
+
highlight[:position].present? ? "highlight_#{highlight[:position]}" : nil
|
40
|
+
end
|
41
|
+
|
42
|
+
def highlight_color_class
|
43
|
+
highlight[:color].present? ? "highlight_#{highlight[:color]}" : nil
|
44
|
+
end
|
31
45
|
end
|
32
46
|
end
|
33
47
|
end
|
@@ -0,0 +1,20 @@
|
|
1
|
+
import React from 'react'
|
2
|
+
import {Card} from '../../'
|
3
|
+
|
4
|
+
function CardHighlight() {
|
5
|
+
return (
|
6
|
+
<div>
|
7
|
+
<Card highlight={{position: "side", color: "windows"}}>
|
8
|
+
{`Card content`}
|
9
|
+
</Card>
|
10
|
+
|
11
|
+
<br/>
|
12
|
+
|
13
|
+
<Card highlight={{position: "top", color: "warning"}}>
|
14
|
+
{`Card content`}
|
15
|
+
</Card>
|
16
|
+
</div>
|
17
|
+
)
|
18
|
+
}
|
19
|
+
|
20
|
+
export default CardHighlight
|