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,5 @@
1
+ <%= pb_rails("date_stacked", props: { date: DateTime.now, dark: true }) %>
2
+
3
+ <br>
4
+
5
+ <%= pb_rails("date_stacked", props: { date: DateTime.now, size: "md", dark: true }) %>
@@ -0,0 +1,24 @@
1
+ import React from "react"
2
+ import DateStacked from "../_date_stacked.jsx"
3
+
4
+ function DateStackedDark() {
5
+ return (
6
+ <div>
7
+ <DateStacked
8
+ date={new Date()}
9
+ size='sm'
10
+ dark={true}
11
+ />
12
+
13
+ <br></br>
14
+
15
+ <DateStacked
16
+ date={new Date()}
17
+ size='md'
18
+ dark={true}
19
+ />
20
+ </div>
21
+ )
22
+ }
23
+
24
+ export default DateStackedDark;
@@ -0,0 +1,5 @@
1
+ <%= pb_rails("date_stacked", props: { date: DateTime.now}) %>
2
+
3
+ <br>
4
+
5
+ <%= pb_rails("date_stacked", props: { date: DateTime.now, size: "md"}) %>
@@ -0,0 +1,18 @@
1
+ import React from "react"
2
+ import DateStacked from "../_date_stacked.jsx"
3
+
4
+ function DateStackedDefault() {
5
+ return (
6
+ <div>
7
+
8
+ <DateStacked date={new Date()} align='left' size='sm'/>
9
+
10
+ <br/>
11
+
12
+ <DateStacked date={new Date()} size='md'/>
13
+
14
+ </div>
15
+ )
16
+ }
17
+
18
+ export default DateStackedDefault;
@@ -0,0 +1,5 @@
1
+ <%= pb_rails("date_stacked", props: { date: Date.new(2018, 03, 20) }) %>
2
+
3
+ <br>
4
+
5
+ <%= pb_rails("date_stacked", props: { date: Date.new(2018, 03, 20), size: "md"}) %>
@@ -0,0 +1,18 @@
1
+ import React from "react"
2
+ import DateStacked from "../_date_stacked.jsx"
3
+
4
+ function DateStackedNotCurrentYear() {
5
+ return (
6
+ <div>
7
+
8
+ <DateStacked date={new Date('20 Mar 2018')} size='sm'/>
9
+
10
+ <br/>
11
+
12
+ <DateStacked date={new Date('20 Mar 2018')} size='md'/>
13
+
14
+ </div>
15
+ )
16
+ }
17
+
18
+ export default DateStackedNotCurrentYear;
@@ -0,0 +1,5 @@
1
+ <%= pb_rails("date_stacked", props: { date: DateTime.now, reverse: true}) %>
2
+
3
+ <br>
4
+
5
+ <%= pb_rails("date_stacked", props: { date: DateTime.now, size: "md", reverse: true}) %>
@@ -0,0 +1,18 @@
1
+ import React from "react"
2
+ import DateStacked from "../_date_stacked.jsx"
3
+
4
+ function DateStackedDefault() {
5
+ return (
6
+ <div>
7
+
8
+ <DateStacked date={new Date()} align='left' size='sm' reverse={true}/>
9
+
10
+ <br/>
11
+
12
+ <DateStacked date={new Date()} size='md'reverse={true}/>
13
+
14
+ </div>
15
+ )
16
+ }
17
+
18
+ export default DateStackedDefault;
@@ -0,0 +1,5 @@
1
+ <%= pb_rails("date_stacked", props: { date: DateTime.now, size: "sm" }) %>
2
+
3
+ <br>
4
+
5
+ <%= pb_rails("date_stacked", props: { date: DateTime.now, size: "md" }) %>
@@ -0,0 +1,19 @@
1
+ import React from "react"
2
+ import DateStacked from "../_date_stacked.jsx"
3
+
4
+ function DateStackedSizes() {
5
+ return (
6
+ <div>
7
+ <DateStacked
8
+ date={new Date()}
9
+ size='sm'
10
+ /><br></br>
11
+ <DateStacked
12
+ date={new Date()}
13
+ size='md'
14
+ />
15
+ </div>
16
+ )
17
+ }
18
+
19
+ export default DateStackedSizes;
@@ -0,0 +1,22 @@
1
+ examples:
2
+
3
+ rails:
4
+ - date_stacked_default: Default
5
+ - date_stacked_not_current_year: Not Current Year
6
+ - date_stacked_reverse: Day & Month Reverse
7
+ - date_stacked_sizes: Sizes
8
+ - date_stacked_align: Alignment
9
+ - date_stacked_dark: Dark
10
+
11
+
12
+
13
+ react:
14
+ - date_stacked_default: Default
15
+ - date_stacked_not_current_year: Not Current Year
16
+ - date_stacked_reverse: Day & Month Reverse
17
+ - date_stacked_sizes: Sizes
18
+ - date_stacked_align: Alignment
19
+ - date_stacked_dark: Dark
20
+
21
+
22
+
@@ -0,0 +1,7 @@
1
+ export {default as DateStackedDefault} from './_date_stacked_default.jsx';
2
+ export {default as DateStackedNotCurrentYear} from './_date_stacked_not_current_year.jsx';
3
+ export {default as DateStackedReverse} from './_date_stacked_reverse.jsx';
4
+ export {default as DateStackedSizes} from './_date_stacked_sizes.jsx';
5
+ export {default as DateStackedAlign} from './_date_stacked_align.jsx';
6
+ export {default as DateStackedDark} from './_date_stacked_dark.jsx';
7
+
@@ -12,7 +12,6 @@ module Playbook
12
12
  default: "neutral"
13
13
  prop :text, type: Playbook::Props::String
14
14
 
15
-
16
15
  def show_text?
17
16
  text.present?
18
17
  end
@@ -1,10 +1,12 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Playbook
2
4
  module PbKit
3
5
  class PbDateTime
4
6
  attr_accessor :value, :zone
5
7
 
6
8
  def initialize(value, zone = "America/New_York")
7
- @value = self.convert_to_timestamp_and_zone(value, zone)
9
+ @value = convert_to_timestamp_and_zone(value, zone)
8
10
  end
9
11
 
10
12
  def convert_to_timestamp_and_zone(value, zone)
@@ -22,7 +22,6 @@ module Playbook
22
22
 
23
23
  def classname
24
24
  first_class = generate_classname("pb_layout", size, position, dark_class, transparent_class)
25
- classname = first_class + full_class + collapse_class
26
25
  [first_class, full_class, collapse_class].reject(&:empty?).join(" ")
27
26
  end
28
27
 
@@ -5,12 +5,12 @@ module Playbook
5
5
  class LoadingInline
6
6
  include Playbook::Props
7
7
 
8
- partial "pb_loading_inline/loading_inline"
8
+ partial "pb_loading_inline/loading_inline"
9
9
 
10
- prop :align, type: Playbook::Props::Enum,
11
- values: %w[left center right],
12
- default: "left"
13
- prop :dark, type: Playbook::Props::Boolean, default: false
10
+ prop :align, type: Playbook::Props::Enum,
11
+ values: %w[left center right],
12
+ default: "left"
13
+ prop :dark, type: Playbook::Props::Boolean, default: false
14
14
 
15
15
  def classname
16
16
  generate_classname("pb_loading_inline_kit", align)
@@ -0,0 +1,14 @@
1
+ <%= content_tag(:div,
2
+ id: object.id,
3
+ data: object.data,
4
+ class: object.classname) do %>
5
+ <% object.users.take(object.display_count).each do |user| %>
6
+ <%= pb_rails("avatar", props: user.merge({size: "xs", classname: "pb_multiple_users_item"}) ) %>
7
+ <% end %>
8
+
9
+ <% if object.more_than_four %>
10
+ <div class="pb_multiple_users_item multiple_users_badge">
11
+ <%= "+#{object.users.count - object.display_count}" %>
12
+ </div>
13
+ <% end %>
14
+ <% end %>
@@ -0,0 +1,69 @@
1
+ /* @flow */
2
+ /*eslint-disable react/no-multi-comp, flowtype/space-before-type-colon */
3
+
4
+ import React from 'react'
5
+ import classnames from 'classnames'
6
+
7
+ import {
8
+ Avatar
9
+ } from '../'
10
+
11
+ type MultipleUsersProps = {
12
+ className?: String,
13
+ id?: String,
14
+ reverse?: Boolean,
15
+ users: Array<Object>,
16
+ }
17
+
18
+ const MultipleUsers = ({
19
+ className,
20
+ id,
21
+ reverse=false,
22
+ users
23
+ }: MultipleUsersProps) => {
24
+
25
+ const multipleUsersCss = () => {
26
+ let css = 'pb_multiple_users_kit'
27
+ css += reverse === true ? '_reverse' : ''
28
+ return css
29
+ }
30
+
31
+ const moreThanFour = () => {
32
+ return users.length > 4
33
+ }
34
+
35
+ const displayCount = () => {
36
+ return moreThanFour() ? 3 : users.length
37
+ }
38
+
39
+ const multipleUsers = () => {
40
+ return users.slice(0, displayCount()).map((userObject, index) => {
41
+ return (
42
+ <Avatar
43
+ {...userObject}
44
+ key={index}
45
+ size="xs"
46
+ className="pb_multiple_users_item" />
47
+ )
48
+ })
49
+ }
50
+
51
+ const plusUsers = () => {
52
+ if( moreThanFour() === true ) {
53
+ return (
54
+ <div className="pb_multiple_users_item multiple_users_badge">
55
+ {`+${users.length - displayCount()}`}
56
+ </div>
57
+ )
58
+ }
59
+ }
60
+
61
+ return (
62
+ <div id={id} className={classnames(multipleUsersCss(), className)}>
63
+ {multipleUsers()}
64
+ {plusUsers()}
65
+ </div>
66
+ )
67
+ }
68
+
69
+ export default MultipleUsers
@@ -0,0 +1,50 @@
1
+ @import "../tokens/colors";
2
+ @import "../utilities/colors";
3
+ @import "../tokens/opacity";
4
+ @import "../pb_avatar/avatar";
5
+
6
+ $pb_multiple_users_overlap: -9px;
7
+ $pb_multiple_users_border_size: 1px;
8
+ $pb_multiple_users_size: map-get($avatar-sizes, "xs");
9
+
10
+ [class^=pb_multiple_users_kit] {
11
+ display: inline-flex;
12
+
13
+ .multiple_users_badge {
14
+ display: flex;
15
+ align-items: center;
16
+ justify-content: center;
17
+ width: $pb_multiple_users_size;
18
+ height: $pb_multiple_users_size;
19
+ border-radius: ($pb_multiple_users_size/2) + 2;
20
+ background: tint($primary, 90%);
21
+ border: $pb_multiple_users_border_size solid $white;
22
+ color: $primary;
23
+ font-weight: $bold;
24
+ font-size: $font_smallest - 1;
25
+ }
26
+
27
+ .pb_multiple_users_item {
28
+ margin-left: $pb_multiple_users_overlap;
29
+ margin-right: 0;
30
+
31
+ .avatar_wrapper {
32
+ border: $pb_multiple_users_border_size solid $white;
33
+ }
34
+
35
+ @each $item in [1, 2, 3, 4, 5] {
36
+ &:nth-child(#{$item}) {
37
+ z-index: #{$item - 1};
38
+ }
39
+ }
40
+ }
41
+
42
+ &[class*=_reverse] {
43
+ flex-direction: row-reverse;
44
+
45
+ .pb_multiple_users_item {
46
+ margin-left: 0;
47
+ margin-right: $pb_multiple_users_overlap;
48
+ }
49
+ }
50
+ }
@@ -0,0 +1,39 @@
1
+ <%= pb_rails("multiple_users", props: {
2
+ users: [
3
+ {
4
+ name: "Patrick Welch",
5
+ image_url: "https://randomuser.me/api/portraits/men/9.jpg",
6
+ },
7
+ {
8
+ name: "Lucille Sanchez",
9
+ image_url: "https://randomuser.me/api/portraits/women/6.jpg",
10
+ },
11
+ {
12
+ name: "Beverly Reyes",
13
+ image_url: "https://randomuser.me/api/portraits/women/74.jpg",
14
+ },
15
+ {
16
+ name: "Keith Craig",
17
+ image_url: "https://randomuser.me/api/portraits/men/40.jpg",
18
+ },
19
+ {
20
+ name: "Alicia Cooper",
21
+ image_url: "https://randomuser.me/api/portraits/women/46.jpg",
22
+ }
23
+ ]
24
+ }) %>
25
+
26
+ <br/><br/>
27
+
28
+ <%= pb_rails("multiple_users", props: {
29
+ users: [
30
+ {
31
+ name: "Shawn Palmer",
32
+ image_url: "https://randomuser.me/api/portraits/men/93.jpg",
33
+ },
34
+ {
35
+ name: "Andrew Murray",
36
+ image_url: "https://randomuser.me/api/portraits/men/75.jpg",
37
+ }
38
+ ]
39
+ }) %>
@@ -0,0 +1,46 @@
1
+ import React from "react"
2
+ import {MultipleUsers} from "../../"
3
+
4
+ function MultipleUsersDefault() {
5
+ return (
6
+ <div>
7
+ <MultipleUsers users={[
8
+ {
9
+ name: "Patrick Welch",
10
+ image_url: "https://randomuser.me/api/portraits/men/9.jpg",
11
+ },
12
+ {
13
+ name: "Lucille Sanchez",
14
+ image_url: "https://randomuser.me/api/portraits/women/6.jpg",
15
+ },
16
+ {
17
+ name: "Beverly Reyes",
18
+ image_url: "https://randomuser.me/api/portraits/women/74.jpg",
19
+ },
20
+ {
21
+ name: "Keith Craig",
22
+ image_url: "https://randomuser.me/api/portraits/men/40.jpg",
23
+ },
24
+ {
25
+ name: "Alicia Cooper",
26
+ image_url: "https://randomuser.me/api/portraits/women/46.jpg",
27
+ }
28
+ ]} />
29
+
30
+ <br/><br/>
31
+
32
+ <MultipleUsers users={[
33
+ {
34
+ name: "Shawn Palmer",
35
+ image_url: "https://randomuser.me/api/portraits/men/93.jpg",
36
+ },
37
+ {
38
+ name: "Andrew Murray",
39
+ image_url: "https://randomuser.me/api/portraits/men/75.jpg",
40
+ }
41
+ ]} />
42
+ </div>
43
+ )
44
+ }
45
+
46
+ export default MultipleUsersDefault