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.
Files changed (82) hide show
  1. checksums.yaml +4 -4
  2. data/app/pb_kits/playbook/_playbook.scss +3 -0
  3. data/app/pb_kits/playbook/index.js +4 -0
  4. data/app/pb_kits/playbook/kits/pb_date_stacked.js +4 -0
  5. data/app/pb_kits/playbook/kits/pb_multiple_users.js +4 -0
  6. data/app/pb_kits/playbook/kits/pb_progress_pills.js +4 -0
  7. data/app/pb_kits/playbook/packs/examples.js +6 -0
  8. data/app/pb_kits/playbook/packs/kits.js +5 -0
  9. data/app/pb_kits/playbook/packs/site_styles/docs/_color_utilities.scss +1 -0
  10. data/app/pb_kits/playbook/pb_avatar/_avatar.jsx +21 -12
  11. data/app/pb_kits/playbook/pb_avatar/docs/_avatar_default.jsx +5 -5
  12. data/app/pb_kits/playbook/pb_bar_graph/bar_graph.rb +1 -1
  13. data/app/pb_kits/playbook/pb_caption/caption.rb +0 -1
  14. data/app/pb_kits/playbook/pb_card/_card.jsx +18 -6
  15. data/app/pb_kits/playbook/pb_card/_card.scss +33 -0
  16. data/app/pb_kits/playbook/pb_card/card.rb +15 -1
  17. data/app/pb_kits/playbook/pb_card/docs/_card_highlight.html.erb +9 -0
  18. data/app/pb_kits/playbook/pb_card/docs/_card_highlight.jsx +20 -0
  19. data/app/pb_kits/playbook/pb_card/docs/example.yml +3 -0
  20. data/app/pb_kits/playbook/pb_card/docs/index.js +1 -0
  21. data/app/pb_kits/playbook/pb_contact/contact.rb +0 -1
  22. data/app/pb_kits/playbook/pb_dashboard_value/_dashboard_value.jsx +15 -33
  23. data/app/pb_kits/playbook/pb_dashboard_value/docs/_dashboard_value_align.jsx +12 -9
  24. data/app/pb_kits/playbook/pb_dashboard_value/docs/_dashboard_value_default.jsx +12 -9
  25. data/app/pb_kits/playbook/pb_date/date.rb +1 -1
  26. data/app/pb_kits/playbook/pb_date_stacked/_date_stacked.html.erb +13 -0
  27. data/app/pb_kits/playbook/pb_date_stacked/_date_stacked.jsx +83 -0
  28. data/app/pb_kits/playbook/pb_date_stacked/_date_stacked.scss +35 -0
  29. data/app/pb_kits/playbook/pb_date_stacked/date_stacked.rb +69 -0
  30. data/app/pb_kits/playbook/pb_date_stacked/docs/_date_stacked_align.html.erb +21 -0
  31. data/app/pb_kits/playbook/pb_date_stacked/docs/_date_stacked_align.jsx +33 -0
  32. data/app/pb_kits/playbook/pb_date_stacked/docs/_date_stacked_dark.html.erb +5 -0
  33. data/app/pb_kits/playbook/pb_date_stacked/docs/_date_stacked_dark.jsx +24 -0
  34. data/app/pb_kits/playbook/pb_date_stacked/docs/_date_stacked_default.html.erb +5 -0
  35. data/app/pb_kits/playbook/pb_date_stacked/docs/_date_stacked_default.jsx +18 -0
  36. data/app/pb_kits/playbook/pb_date_stacked/docs/_date_stacked_not_current_year.html.erb +5 -0
  37. data/app/pb_kits/playbook/pb_date_stacked/docs/_date_stacked_not_current_year.jsx +18 -0
  38. data/app/pb_kits/playbook/pb_date_stacked/docs/_date_stacked_reverse.html.erb +5 -0
  39. data/app/pb_kits/playbook/pb_date_stacked/docs/_date_stacked_reverse.jsx +18 -0
  40. data/app/pb_kits/playbook/pb_date_stacked/docs/_date_stacked_sizes.html.erb +5 -0
  41. data/app/pb_kits/playbook/pb_date_stacked/docs/_date_stacked_sizes.jsx +19 -0
  42. data/app/pb_kits/playbook/pb_date_stacked/docs/example.yml +22 -0
  43. data/app/pb_kits/playbook/pb_date_stacked/docs/index.js +7 -0
  44. data/app/pb_kits/playbook/pb_fixed_confirmation_toast/fixed_confirmation_toast.rb +0 -1
  45. data/app/pb_kits/playbook/pb_kit/pb_date_time.rb +3 -1
  46. data/app/pb_kits/playbook/pb_layout/layout.rb +0 -1
  47. data/app/pb_kits/playbook/pb_loading_inline/loading_inline.rb +5 -5
  48. data/app/pb_kits/playbook/pb_multiple_users/_multiple_users.html.erb +14 -0
  49. data/app/pb_kits/playbook/pb_multiple_users/_multiple_users.jsx +69 -0
  50. data/app/pb_kits/playbook/pb_multiple_users/_multiple_users.scss +50 -0
  51. data/app/pb_kits/playbook/pb_multiple_users/docs/_multiple_users_default.html.erb +39 -0
  52. data/app/pb_kits/playbook/pb_multiple_users/docs/_multiple_users_default.jsx +46 -0
  53. data/app/pb_kits/playbook/pb_multiple_users/docs/_multiple_users_reverse.html.erb +41 -0
  54. data/app/pb_kits/playbook/pb_multiple_users/docs/_multiple_users_reverse.jsx +50 -0
  55. data/app/pb_kits/playbook/pb_multiple_users/docs/example.yml +9 -0
  56. data/app/pb_kits/playbook/pb_multiple_users/docs/index.js +2 -0
  57. data/app/pb_kits/playbook/pb_multiple_users/multiple_users.rb +32 -0
  58. data/app/pb_kits/playbook/pb_online_status/online_status.rb +2 -2
  59. data/app/pb_kits/playbook/pb_person_contact/person_contact.rb +2 -2
  60. data/app/pb_kits/playbook/pb_progress_pills/_progress_pills.html.erb +19 -0
  61. data/app/pb_kits/playbook/pb_progress_pills/_progress_pills.jsx +51 -0
  62. data/app/pb_kits/playbook/pb_progress_pills/_progress_pills.scss +42 -0
  63. data/app/pb_kits/playbook/pb_progress_pills/docs/_progress_pills_dark.html.erb +1 -0
  64. data/app/pb_kits/playbook/pb_progress_pills/docs/_progress_pills_dark.jsx +21 -0
  65. data/app/pb_kits/playbook/pb_progress_pills/docs/_progress_pills_default.html.erb +1 -0
  66. data/app/pb_kits/playbook/pb_progress_pills/docs/_progress_pills_default.jsx +18 -0
  67. data/app/pb_kits/playbook/pb_progress_pills/docs/_progress_pills_status.html.erb +1 -0
  68. data/app/pb_kits/playbook/pb_progress_pills/docs/_progress_pills_status.jsx +20 -0
  69. data/app/pb_kits/playbook/pb_progress_pills/docs/example.yml +12 -0
  70. data/app/pb_kits/playbook/pb_progress_pills/docs/index.js +3 -0
  71. data/app/pb_kits/playbook/pb_progress_pills/progress_pills.rb +49 -0
  72. data/app/pb_kits/playbook/pb_progress_simple/progress_simple.rb +3 -3
  73. data/app/pb_kits/playbook/pb_stat_change/stat_change.rb +5 -5
  74. data/app/pb_kits/playbook/pb_time/time.rb +2 -2
  75. data/app/pb_kits/playbook/pb_title_count/title_count.rb +2 -2
  76. data/app/pb_kits/playbook/pb_user/docs/_user_dark.html.erb +42 -0
  77. data/app/pb_kits/playbook/pb_user/docs/_user_text_only_dark.html.erb +19 -0
  78. data/app/pb_kits/playbook/tokens/_colors.scss +4 -0
  79. data/app/views/playbook/pages/utilities.html.slim +4 -4
  80. data/lib/playbook/version.rb +1 -1
  81. data/lib/tasks/pb_release.rake +0 -2
  82. 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,9 @@
1
+ examples:
2
+
3
+ rails:
4
+ - multiple_users_default: Default
5
+ - multiple_users_reverse: Reverse
6
+
7
+ react:
8
+ - multiple_users_default: Default
9
+ - multiple_users_reverse: Reverse
@@ -0,0 +1,2 @@
1
+ export {default as MultipleUsersDefault} from './_multiple_users_default.jsx';
2
+ export {default as MultipleUsersReverse} from './_multiple_users_reverse.jsx';
@@ -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
- values: %w[online offline away],
12
- default: "offline"
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.select {|contact| contact[:contact_type] != "wrong number" }
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,12 @@
1
+ examples:
2
+
3
+ rails:
4
+ - progress_pills_default: Default
5
+ - progress_pills_status: Status
6
+ - progress_pills_dark: Dark
7
+
8
+
9
+ react:
10
+ - progress_pills_default: Default
11
+ - progress_pills_status: Status
12
+ - progress_pills_dark: Dark
@@ -0,0 +1,3 @@
1
+ export {default as ProgressPillsDefault} from './_progress_pills_default.jsx';
2
+ export {default as ProgressPillsStatus} from './_progress_pills_status.jsx';
3
+ export {default as ProgressPillsDark} from './_progress_pills_dark.jsx';
@@ -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
- values: %w[left center right],
14
- default: "left"
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
- default: false
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?