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
@@ -1,12 +1,15 @@
1
1
  examples:
2
2
  rails:
3
3
  - card_light: Default
4
+ - card_highlight: Highlight Cards
4
5
  - card_selected: Selected
5
6
  - card_padding: Padding Size
6
7
  - card_shadow: Shadow Size
7
8
  - card_content: Content Size
9
+
8
10
  react:
9
11
  - card_light: Default
12
+ - card_highlight: Highlight Cards
10
13
  - card_selected: Selected
11
14
  - card_padding: Padding Size
12
15
  - card_shadow: Shadow Size
@@ -1,4 +1,5 @@
1
1
  export {default as CardLight} from './_card_light.jsx';
2
+ export {default as CardHighlight} from './_card_highlight.jsx';
2
3
  export {default as CardSelected} from './_card_selected.jsx';
3
4
  export {default as CardPadding} from './_card_padding.jsx';
4
5
  export {default as CardShadow} from './_card_shadow.jsx';
@@ -48,7 +48,6 @@ module Playbook
48
48
  def formatted_value
49
49
  contact_value.to_s.gsub(/\D/, "")
50
50
  end
51
-
52
51
  end
53
52
  end
54
53
  end
@@ -13,12 +13,12 @@ type DashboardValueProps = {
13
13
  align?: 'left' | 'center' | 'right',
14
14
  className?: String,
15
15
  id?: String,
16
- stat_change?: {
16
+ statChange?: {
17
17
  change?: String,
18
18
  value?: String | Number
19
19
  },
20
- stat_label?: String,
21
- stat_value?: {
20
+ statLabel?: String,
21
+ statValue?: {
22
22
  unit?: String,
23
23
  value?: String | Number
24
24
  }
@@ -39,40 +39,22 @@ const DashboardValue = (props: DashboardValueProps) => {
39
39
  align='left',
40
40
  className,
41
41
  id,
42
- stat_change,
43
- stat_label,
44
- stat_value,
42
+ statChange,
43
+ statLabel,
44
+ statValue,
45
45
  } = props
46
46
 
47
- const statLabel = function(stat_label) {
48
- if (stat_label) {
49
- return (
50
- <Body color="light">{stat_label}</Body>
51
- )
52
- }
53
- }
54
-
55
- const statChange = function(stat_change) {
56
- if (stat_change) {
57
- return (
58
- <StatChange change={stat_change.change} value={stat_change.value} />
59
- )
60
- }
61
- }
62
-
63
- const statValue = function(stat_value) {
64
- if (stat_value) {
65
- return (
66
- <StatValue value={stat_value.value} unit={stat_value.unit} />
67
- )
68
- }
69
- }
70
-
71
47
  return (
72
48
  <div id={id} className={classnames(dashboardValueCSS(props), className)}>
73
- {statLabel(stat_label)}
74
- {statValue(stat_value)}
75
- {statChange(stat_change)}
49
+ <If condition={statLabel}>
50
+ <Body color="light">{statLabel}</Body>
51
+ </If>
52
+ <If condition={statValue}>
53
+ <StatValue value={statValue.value} unit={statValue.unit} />
54
+ </If>
55
+ <If condition={statChange}>
56
+ <StatChange change={statChange.change} value={statChange.value} />
57
+ </If>
76
58
  </div>
77
59
  )
78
60
  }
@@ -5,25 +5,28 @@ function DashboardValueAlign() {
5
5
  return (
6
6
  <div>
7
7
  <DashboardValue
8
- stat_label="Top Title Value"
9
- stat_value={{value: "1,428", unit: "appts"}}
10
- stat_change={{change: "decrease", value: "26.1"}} />
8
+ statChange={{change: "decrease", value: "26.1"}}
9
+ statLabel="Top Title Value"
10
+ statValue={{value: "1,428", unit: "appts"}}
11
+ />
11
12
 
12
13
  <br/><br/>
13
14
 
14
15
  <DashboardValue
15
16
  align="center"
16
- stat_label="Top Title Value"
17
- stat_value={{value: "1,428", unit: "appts"}}
18
- stat_change={{change: "decrease", value: 56.1}} />
17
+ statChange={{change: "decrease", value: 56.1}}
18
+ statLabel="Top Title Value"
19
+ statValue={{value: "1,428", unit: "appts"}}
20
+ />
19
21
 
20
22
  <br/><br/>
21
23
 
22
24
  <DashboardValue
23
25
  align="right"
24
- stat_label="Top Title Value"
25
- stat_value={{value: "1,428", unit: "appts"}}
26
- stat_change={{change: "decrease", value: 86}} />
26
+ statChange={{change: "decrease", value: 86}}
27
+ statLabel="Top Title Value"
28
+ statValue={{value: "1,428", unit: "appts"}}
29
+ />
27
30
  </div>
28
31
  )
29
32
  }
@@ -5,23 +5,26 @@ function DashboardValueDefault() {
5
5
  return (
6
6
  <div>
7
7
  <DashboardValue
8
- stat_label="Decreased Value"
9
- stat_value={{value: "1,428", unit: "appts"}}
10
- stat_change={{change: "decrease", value: "26.1"}} />
8
+ statChange={{change: "decrease", value: "26.1"}}
9
+ statLabel="Decreased Value"
10
+ statValue={{value: "1,428", unit: "appts"}}
11
+ />
11
12
 
12
13
  <br/><br/>
13
14
 
14
15
  <DashboardValue
15
- stat_label="Increased Value"
16
- stat_value={{value: "938", unit: "homes"}}
17
- stat_change={{change: "increase", value: 56.1}} />
16
+ statChange={{change: "increase", value: 56.1}}
17
+ statLabel="Increased Value"
18
+ statValue={{value: "938", unit: "homes"}}
19
+ />
18
20
 
19
21
  <br/><br/>
20
22
 
21
23
  <DashboardValue
22
- stat_label="Neutral Value"
23
- stat_value={{value: "261", unit: "windows"}}
24
- stat_change={{value: 86}} />
24
+ statChange={{value: 86}}
25
+ statLabel="Neutral Value"
26
+ statValue={{value: "261", unit: "windows"}}
27
+ />
25
28
  </div>
26
29
  )
27
30
  }
@@ -33,7 +33,7 @@ module Playbook
33
33
  private
34
34
 
35
35
  def pb_date_time
36
- pb_date_time ||= Playbook::PbKit::PbDateTime.new(date)
36
+ Playbook::PbKit::PbDateTime.new(date)
37
37
  end
38
38
  end
39
39
  end
@@ -0,0 +1,13 @@
1
+ <%= content_tag(:div,
2
+ id: object.id,
3
+ data: object.data,
4
+ class: object.classname) do %>
5
+
6
+ <div class="pb_date_stacked_day_month">
7
+ <%= pb_rails("caption", props: { text: object.month }) %>
8
+ <%= pb_rails("title", props: { text: object.day , size: object.title_size }) do %>
9
+ <% end %>
10
+ </div>
11
+ <%= pb_rails("caption", props: { text: object.year, size:"xs" }) %>
12
+
13
+ <% end %>
@@ -0,0 +1,83 @@
1
+ /* @flow */
2
+
3
+ import React from 'react'
4
+ import classnames from 'classnames'
5
+ import DateTime from '../pb_kit/dateTime.js'
6
+
7
+ import {
8
+ Title,
9
+ Caption
10
+ } from '../'
11
+
12
+ type DateStackedProps = {
13
+ align?: 'center' | 'right',
14
+ className?: String | Array<String>,
15
+ dark?: Boolean,
16
+ data?: String,
17
+ date: String,
18
+ size?: 'sm' | 'md',
19
+ id?: String,
20
+ reverse?: Boolean,
21
+ }
22
+
23
+ const kitClasses = ({
24
+ align='left',
25
+ size='sm',
26
+ dark=false,
27
+ reverse=false,
28
+
29
+ }: DateStackedProps) => {
30
+ const alignStyle = align !== '' ? `_${align}` : ''
31
+ const sizeStyle = size !== '' ? `_${size}` : ''
32
+ const themeStyle = dark === true ? '_dark' : ''
33
+ const reverseStyle = reverse === true ? '_reverse' : ''
34
+ return 'pb_date_stacked_kit' + alignStyle + sizeStyle + themeStyle + reverseStyle
35
+ }
36
+
37
+ const sizes = {
38
+ sm: 4,
39
+ md: 3,
40
+ }
41
+
42
+ const DateStacked = (props: DateStackedProps) => {
43
+ const {
44
+ align='left',
45
+ className,
46
+ dark=false,
47
+ reverse=false,
48
+ date,
49
+ size='sm'
50
+ } = props
51
+
52
+ const dateTimestamp = new DateTime({ value: date })
53
+ const css = classnames(kitClasses(props), className)
54
+
55
+ const current_year = new Date().getFullYear().toString()
56
+ const input_year = dateTimestamp.toYear().toString()
57
+
58
+ const print_year = dateTimestamp => {
59
+ if (current_year != input_year) {
60
+ return (
61
+ <Caption size='xs'>{input_year}</Caption>
62
+ )
63
+ }
64
+ }
65
+
66
+ return (
67
+ <div className={css}>
68
+ <div class="pb_date_stacked_day_month">
69
+ <Caption
70
+ text={`${dateTimestamp.toMonth().toUpperCase()}`}
71
+ />
72
+ <Title
73
+ dark={dark}
74
+ size={sizes[size]}
75
+ text={`${dateTimestamp.toDay()}`}
76
+ />
77
+ </div>
78
+ {print_year(date)}
79
+ </div>
80
+ )
81
+ }
82
+
83
+ export default DateStacked
@@ -0,0 +1,35 @@
1
+ @import "../pb_title/title";
2
+ @import "../pb_caption/caption";
3
+ @import "../tokens/colors";
4
+
5
+
6
+ [class^=pb_date_stacked_kit]{
7
+ &[class*=_center] {
8
+ & > * [class^=pb_title_kit],
9
+ & > * [class^=pb_caption_kit],
10
+ & > [class^=pb_date_stacked_year_kit] {
11
+ text-align: center;
12
+ }
13
+ }
14
+ &[class*=_right] {
15
+ & > * [class^=pb_title_kit],
16
+ & > * [class^=pb_caption_kit],
17
+ & > [class^=pb_date_stacked_year] {
18
+ text-align: right;
19
+ }
20
+ }
21
+ &[class*=_reverse] {
22
+ .pb_date_stacked_day_month {
23
+ display: flex;
24
+ flex-direction: column-reverse;
25
+ }
26
+ }
27
+ &[class*=_dark] {
28
+ & > * [class^=pb_title_kit] {
29
+ color: $text_dk_default;
30
+ }
31
+ & > * [class^=pb_caption_kit] {
32
+ color: $text_dk_light;
33
+ }
34
+ }
35
+ }
@@ -0,0 +1,69 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Playbook
4
+ module PbDateStacked
5
+ class DateStacked
6
+ include ActionView::Helpers::TagHelper
7
+ include ActionView::Context
8
+ include Playbook::Props
9
+
10
+ partial "pb_date_stacked/date_stacked"
11
+
12
+ prop :date, type: Playbook::Props::Date, required: true
13
+ prop :align, type: Playbook::Props::Enum,
14
+ values: %w[left center right],
15
+ default: "left"
16
+ prop :size, type: Playbook::Props::Enum,
17
+ values: %w[sm md],
18
+ default: "sm"
19
+ prop :reverse, type: Playbook::Props::Boolean,
20
+ default: false
21
+ prop :dark, type: Playbook::Props::Boolean,
22
+ default: false
23
+
24
+ def classname
25
+ generate_classname("pb_date_stacked_kit", align, size, reverse_class, dark_class)
26
+ end
27
+
28
+ def title_size
29
+ size == "md" ? 3: 4
30
+ end
31
+
32
+ def day
33
+ day = Playbook::PbKit::PbDateTime.new(date)
34
+ content_tag(:time, datetime: day.to_iso) do
35
+ "#{day.to_day}"
36
+ end
37
+ end
38
+
39
+ def month
40
+ month = Playbook::PbKit::PbDateTime.new(date)
41
+ content_tag(:time, datetime: month.to_iso) do
42
+ "#{month.to_month}"
43
+ end
44
+ end
45
+
46
+ def year
47
+ current_year = DateTime.now.year.to_i
48
+ year = Playbook::PbKit::PbDateTime.new(date).to_year.to_i
49
+ if current_year != year
50
+ content_tag(:time, datetime: year) do
51
+ "#{year}"
52
+ end
53
+ else
54
+ end
55
+ end
56
+
57
+ private
58
+
59
+ def reverse_class
60
+ reverse ? "reverse" : nil
61
+ end
62
+
63
+ def dark_class
64
+ dark ? "dark" : nil
65
+ end
66
+
67
+ end
68
+ end
69
+ end
@@ -0,0 +1,21 @@
1
+ <%= pb_rails("date_stacked", props: { date: DateTime.now }) %>
2
+
3
+ <br>
4
+
5
+ <%= pb_rails("date_stacked", props: { date: DateTime.now, align: "center" }) %>
6
+
7
+ <br>
8
+
9
+ <%= pb_rails("date_stacked", props: { date: DateTime.now, align: "right" }) %>
10
+
11
+ <br>
12
+
13
+ <%= pb_rails("date_stacked", props: { date: DateTime.now, size: "md"}) %>
14
+
15
+ <br>
16
+
17
+ <%= pb_rails("date_stacked", props: { date: DateTime.now, size: "md", align: "center" }) %>
18
+
19
+ <br>
20
+
21
+ <%= pb_rails("date_stacked", props: { date: DateTime.now, size: "md", align: "right" }) %>
@@ -0,0 +1,33 @@
1
+ import React from "react"
2
+ import DateStacked from "../_date_stacked.jsx"
3
+
4
+ function DateStackedAlign() {
5
+ return (
6
+ <div>
7
+ <DateStacked date={new Date()} size='sm'/>
8
+
9
+ <br/>
10
+
11
+ <DateStacked date={new Date()} align='center'/>
12
+
13
+ <br/>
14
+
15
+ <DateStacked date={new Date()} align='right'/>
16
+
17
+ <br/>
18
+
19
+ <DateStacked date={new Date()} size='md'/>
20
+
21
+ <br/>
22
+
23
+ <DateStacked date={new Date()} size='md' align='center'/>
24
+
25
+ <br/>
26
+
27
+ <DateStacked date={new Date()} size='md' align='right'/>
28
+
29
+ </div>
30
+ )
31
+ }
32
+
33
+ export default DateStackedAlign;