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
@@ -0,0 +1,41 @@
|
|
1
|
+
<%= pb_rails("multiple_users", props: {
|
2
|
+
reverse: true,
|
3
|
+
users: [
|
4
|
+
{
|
5
|
+
name: "Patrick Welch",
|
6
|
+
image_url: "https://randomuser.me/api/portraits/men/9.jpg",
|
7
|
+
},
|
8
|
+
{
|
9
|
+
name: "Lucille Sanchez",
|
10
|
+
image_url: "https://randomuser.me/api/portraits/women/6.jpg",
|
11
|
+
},
|
12
|
+
{
|
13
|
+
name: "Beverly Reyes",
|
14
|
+
image_url: "https://randomuser.me/api/portraits/women/74.jpg",
|
15
|
+
},
|
16
|
+
{
|
17
|
+
name: "Keith Craig",
|
18
|
+
image_url: "https://randomuser.me/api/portraits/men/40.jpg",
|
19
|
+
},
|
20
|
+
{
|
21
|
+
name: "Alicia Cooper",
|
22
|
+
image_url: "https://randomuser.me/api/portraits/women/46.jpg",
|
23
|
+
}
|
24
|
+
]
|
25
|
+
}) %>
|
26
|
+
|
27
|
+
<br/><br/>
|
28
|
+
|
29
|
+
<%= pb_rails("multiple_users", props: {
|
30
|
+
reverse: true,
|
31
|
+
users: [
|
32
|
+
{
|
33
|
+
name: "Shawn Palmer",
|
34
|
+
image_url: "https://randomuser.me/api/portraits/men/93.jpg",
|
35
|
+
},
|
36
|
+
{
|
37
|
+
name: "Andrew Murray",
|
38
|
+
image_url: "https://randomuser.me/api/portraits/men/75.jpg",
|
39
|
+
}
|
40
|
+
]
|
41
|
+
}) %>
|
@@ -0,0 +1,50 @@
|
|
1
|
+
import React from "react"
|
2
|
+
import { MultipleUsers } from "../../"
|
3
|
+
|
4
|
+
function MultipleUsersReverse() {
|
5
|
+
return (
|
6
|
+
<div>
|
7
|
+
<MultipleUsers
|
8
|
+
reverse
|
9
|
+
users={[
|
10
|
+
{
|
11
|
+
name: "Patrick Welch",
|
12
|
+
image_url: "https://randomuser.me/api/portraits/men/9.jpg",
|
13
|
+
},
|
14
|
+
{
|
15
|
+
name: "Lucille Sanchez",
|
16
|
+
image_url: "https://randomuser.me/api/portraits/women/6.jpg",
|
17
|
+
},
|
18
|
+
{
|
19
|
+
name: "Beverly Reyes",
|
20
|
+
image_url: "https://randomuser.me/api/portraits/women/74.jpg",
|
21
|
+
},
|
22
|
+
{
|
23
|
+
name: "Keith Craig",
|
24
|
+
image_url: "https://randomuser.me/api/portraits/men/40.jpg",
|
25
|
+
},
|
26
|
+
{
|
27
|
+
name: "Alicia Cooper",
|
28
|
+
image_url: "https://randomuser.me/api/portraits/women/46.jpg",
|
29
|
+
}
|
30
|
+
]} />
|
31
|
+
|
32
|
+
<br/><br/>
|
33
|
+
|
34
|
+
<MultipleUsers
|
35
|
+
reverse
|
36
|
+
users={[
|
37
|
+
{
|
38
|
+
name: "Shawn Palmer",
|
39
|
+
image_url: "https://randomuser.me/api/portraits/men/93.jpg",
|
40
|
+
},
|
41
|
+
{
|
42
|
+
name: "Andrew Murray",
|
43
|
+
image_url: "https://randomuser.me/api/portraits/men/75.jpg",
|
44
|
+
}
|
45
|
+
]} />
|
46
|
+
</div>
|
47
|
+
)
|
48
|
+
}
|
49
|
+
|
50
|
+
export default MultipleUsersReverse
|
@@ -0,0 +1,32 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Playbook
|
4
|
+
module PbMultipleUsers
|
5
|
+
class MultipleUsers
|
6
|
+
include Playbook::Props
|
7
|
+
|
8
|
+
partial "pb_multiple_users/multiple_users"
|
9
|
+
|
10
|
+
prop :reverse, type: Playbook::Props::Boolean, default: false
|
11
|
+
prop :users, type: Playbook::Props::HashArray, required: true
|
12
|
+
|
13
|
+
def more_than_four
|
14
|
+
users.count > 4
|
15
|
+
end
|
16
|
+
|
17
|
+
def display_count
|
18
|
+
more_than_four ? 3 : users.count
|
19
|
+
end
|
20
|
+
|
21
|
+
def classname
|
22
|
+
generate_classname("pb_multiple_users_kit", reverse_class)
|
23
|
+
end
|
24
|
+
|
25
|
+
private
|
26
|
+
|
27
|
+
def reverse_class
|
28
|
+
reverse ? "reverse" : nil
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
@@ -8,8 +8,8 @@ module Playbook
|
|
8
8
|
partial "pb_online_status/online_status"
|
9
9
|
|
10
10
|
prop :status, type: Playbook::Props::Enum,
|
11
|
-
|
12
|
-
|
11
|
+
values: %w[online offline away],
|
12
|
+
default: "offline"
|
13
13
|
|
14
14
|
def classname
|
15
15
|
generate_classname("pb_online_status_kit", status)
|
@@ -12,11 +12,11 @@ module Playbook
|
|
12
12
|
prop :last_name
|
13
13
|
|
14
14
|
def wrong_contacts
|
15
|
-
contacts.select {|contact| contact[:contact_type] == "wrong number" }
|
15
|
+
contacts.select { |contact| contact[:contact_type] == "wrong number" }
|
16
16
|
end
|
17
17
|
|
18
18
|
def valid_contacts
|
19
|
-
contacts.
|
19
|
+
contacts.reject { |contact| contact[:contact_type] == "wrong number" }
|
20
20
|
end
|
21
21
|
|
22
22
|
def classname
|
@@ -0,0 +1,19 @@
|
|
1
|
+
<%= content_tag(:div,
|
2
|
+
id: object.id,
|
3
|
+
data: object.data,
|
4
|
+
class: object.classname) do %>
|
5
|
+
|
6
|
+
<div class="progress_pills_status">
|
7
|
+
<% object.with_status do |status| %>
|
8
|
+
<%= pb_rails("title", props: { text: object.title, tag: "h4", size: 4, dark: object.dark})%>
|
9
|
+
<%= pb_rails("body", props: { text: object.value, color: "light", dark:object.dark}) %>
|
10
|
+
<% end %>
|
11
|
+
</div>
|
12
|
+
|
13
|
+
<div class="progress_pills">
|
14
|
+
<% object.each_step do |step| %>
|
15
|
+
<span class="pb_progress_pill<%= object.active_step(step) %><%= object.dark_pill %>"></span>
|
16
|
+
<% end %>
|
17
|
+
</div>
|
18
|
+
|
19
|
+
<% end %>
|
@@ -0,0 +1,51 @@
|
|
1
|
+
/* @flow */
|
2
|
+
/*eslint-disable react/no-multi-comp, flowtype/space-before-type-colon */
|
3
|
+
|
4
|
+
import React from 'react'
|
5
|
+
import { Body,Title } from '../'
|
6
|
+
|
7
|
+
|
8
|
+
type ProgressPillsProps = {
|
9
|
+
active?: Number,
|
10
|
+
steps?: Number,
|
11
|
+
title?: String,
|
12
|
+
value?: String,
|
13
|
+
dark?: Boolean,
|
14
|
+
|
15
|
+
}
|
16
|
+
|
17
|
+
const showSteps = (steps, active, dark) => {
|
18
|
+
let items = []
|
19
|
+
|
20
|
+
for(let step = 1; step <= steps; step++) {
|
21
|
+
items.push(ProgressPill({step,active,dark}))
|
22
|
+
}
|
23
|
+
|
24
|
+
return items
|
25
|
+
}
|
26
|
+
|
27
|
+
const ProgressPill = ({
|
28
|
+
active,
|
29
|
+
dark,
|
30
|
+
step,
|
31
|
+
}: ProgressPillProps) => (<div className={`pb_progress_pill${step <= active ? "_active" : "_inactive"}${dark ? "_dark" : null}`} key={step}></div>)
|
32
|
+
|
33
|
+
const ProgressPills = ({ active = 0, steps = 3, title = null, value = null, dark=false } : ProgressPillsProps) => {
|
34
|
+
|
35
|
+
const darkClass = dark ? "_dark" : ""
|
36
|
+
|
37
|
+
return(
|
38
|
+
<div className={`pb_progress_pills_kit${darkClass}`}>
|
39
|
+
{title ?
|
40
|
+
<div className="progress_pills_status">
|
41
|
+
<Title text={title} size={4} tag="h4" dark={dark}/>
|
42
|
+
<Body color="light" text={value} dark={dark}/>
|
43
|
+
</div> : null}
|
44
|
+
|
45
|
+
<div className="progress_pills">
|
46
|
+
{showSteps(steps, active, dark)}
|
47
|
+
</div>
|
48
|
+
</div>
|
49
|
+
)}
|
50
|
+
|
51
|
+
export default ProgressPills
|
@@ -0,0 +1,42 @@
|
|
1
|
+
@import "../tokens/spacing";
|
2
|
+
@import "../tokens/colors";
|
3
|
+
@import "../tokens/border_radius";
|
4
|
+
|
5
|
+
@mixin pb_progress_pill {
|
6
|
+
width: 45px;
|
7
|
+
height: 4px;
|
8
|
+
border-radius: $border_rad_light;
|
9
|
+
margin-right: $space_xs;
|
10
|
+
}
|
11
|
+
|
12
|
+
[class^=pb_progress_pills_kit] {
|
13
|
+
[class*=progress_pills] {
|
14
|
+
display: flex;
|
15
|
+
}
|
16
|
+
|
17
|
+
[class*=progress_pills_status] {
|
18
|
+
display: flex;
|
19
|
+
align-items: center;
|
20
|
+
margin-bottom: $space_xs;
|
21
|
+
|
22
|
+
[class*=title] {
|
23
|
+
margin-right: $space_xs;
|
24
|
+
}
|
25
|
+
}
|
26
|
+
|
27
|
+
|
28
|
+
[class*=pb_progress_pill] {
|
29
|
+
@include pb_progress_pill;
|
30
|
+
|
31
|
+
&[class*=_inactive] {
|
32
|
+
background-color: $border_light;
|
33
|
+
&[class*=_dark]{
|
34
|
+
background-color: $border_dark;
|
35
|
+
}
|
36
|
+
}
|
37
|
+
|
38
|
+
&[class*=_active] {
|
39
|
+
background-color: $primary_action;
|
40
|
+
}
|
41
|
+
}
|
42
|
+
}
|
@@ -0,0 +1 @@
|
|
1
|
+
<%= pb_rails("progress_pills", props: { steps: 3, active: 2, title: "Status:", value: "Orientation", dark: true}) %>
|
@@ -0,0 +1,21 @@
|
|
1
|
+
|
2
|
+
import React from "react"
|
3
|
+
import ProgressPills from "../_progress_pills.jsx"
|
4
|
+
|
5
|
+
|
6
|
+
function ProgressPillsDark() {
|
7
|
+
return (
|
8
|
+
<div>
|
9
|
+
<ProgressPills
|
10
|
+
active={2}
|
11
|
+
dark
|
12
|
+
title="Status:"
|
13
|
+
steps={3}
|
14
|
+
value="Orientation"
|
15
|
+
/>
|
16
|
+
|
17
|
+
</div>
|
18
|
+
)
|
19
|
+
}
|
20
|
+
|
21
|
+
export default ProgressPillsDark;
|
@@ -0,0 +1 @@
|
|
1
|
+
<%= pb_rails("progress_pills", props: { steps: 3, active: 2 }) %>
|
@@ -0,0 +1,18 @@
|
|
1
|
+
|
2
|
+
import React from "react"
|
3
|
+
import ProgressPills from "../_progress_pills.jsx"
|
4
|
+
|
5
|
+
|
6
|
+
function ProgressPillsDefault() {
|
7
|
+
return (
|
8
|
+
<div>
|
9
|
+
<ProgressPills
|
10
|
+
active={2}
|
11
|
+
steps={3}
|
12
|
+
/>
|
13
|
+
|
14
|
+
</div>
|
15
|
+
)
|
16
|
+
}
|
17
|
+
|
18
|
+
export default ProgressPillsDefault;
|
@@ -0,0 +1 @@
|
|
1
|
+
<%= pb_rails("progress_pills", props: { steps: 3, active: 2, title:"Status:", value:"Orientation" }) %>
|
@@ -0,0 +1,20 @@
|
|
1
|
+
|
2
|
+
import React from "react"
|
3
|
+
import ProgressPills from "../_progress_pills.jsx"
|
4
|
+
|
5
|
+
|
6
|
+
function ProgressPillsStatus() {
|
7
|
+
return (
|
8
|
+
<div>
|
9
|
+
<ProgressPills
|
10
|
+
active={2}
|
11
|
+
title="Status:"
|
12
|
+
steps={3}
|
13
|
+
value="Orientation"
|
14
|
+
/>
|
15
|
+
|
16
|
+
</div>
|
17
|
+
)
|
18
|
+
}
|
19
|
+
|
20
|
+
export default ProgressPillsStatus;
|
@@ -0,0 +1,49 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Playbook
|
4
|
+
module PbProgressPills
|
5
|
+
class ProgressPills
|
6
|
+
include Playbook::Props
|
7
|
+
|
8
|
+
partial "pb_progress_pills/progress_pills"
|
9
|
+
|
10
|
+
prop :active, type: Playbook::Props::Number,
|
11
|
+
default: 0
|
12
|
+
prop :value
|
13
|
+
prop :dark, type: Playbook::Props::Boolean,
|
14
|
+
default: false
|
15
|
+
prop :steps, type: Playbook::Props::Number,
|
16
|
+
default: 3
|
17
|
+
prop :title
|
18
|
+
|
19
|
+
def classname
|
20
|
+
generate_classname("pb_progress_pills_kit", dark_class)
|
21
|
+
end
|
22
|
+
|
23
|
+
|
24
|
+
|
25
|
+
def with_status
|
26
|
+
yield title if title.present?
|
27
|
+
end
|
28
|
+
|
29
|
+
def each_step(&block)
|
30
|
+
1.upto(steps, &block)
|
31
|
+
end
|
32
|
+
|
33
|
+
def active_step(step)
|
34
|
+
step <= active ? "_active" : "_inactive"
|
35
|
+
end
|
36
|
+
|
37
|
+
def dark_pill
|
38
|
+
dark ? "_dark" : nil
|
39
|
+
end
|
40
|
+
|
41
|
+
private
|
42
|
+
|
43
|
+
def dark_class
|
44
|
+
dark ? "dark" : nil
|
45
|
+
end
|
46
|
+
|
47
|
+
end
|
48
|
+
end
|
49
|
+
end
|
@@ -10,12 +10,12 @@ module Playbook
|
|
10
10
|
partial "pb_progress_simple/progress_simple"
|
11
11
|
|
12
12
|
prop :align, type: Playbook::Props::Enum,
|
13
|
-
|
14
|
-
|
13
|
+
values: %w[left center right],
|
14
|
+
default: "left"
|
15
15
|
prop :value, type: Playbook::Props::Number
|
16
16
|
prop :max, type: Playbook::Props::Number
|
17
17
|
prop :muted, type: Playbook::Props::Boolean,
|
18
|
-
|
18
|
+
default: false
|
19
19
|
prop :percent, type: Playbook::Props::Percentage
|
20
20
|
# :width prop should not probably be a string type
|
21
21
|
# Should we be allowing the user to pass this value at all?
|